我想要做的是生成 2 个按值分隔的并排箱线图。所以基本上我有一个名为 exo 的数据框。该表包括名为 mass_jupiter(它是一个包含 650 个值 0.0001-10 的表)orbital_period_days(它是一个包含 0.0001-7000 或其他值的表)和 Planet_name 的字段。我想知道如何生成两个并排的箱线图,将质量大于 1 的行星的轨道时间与质量小于 1 的行星的轨道时间进行比较。
我该怎么办?我试过 > boxplot(exo"dollarsign"orbital_period_days ~ exo$mass_jupiter) 但这只是给了我 650 个小箱线图,用于每个不同的质量值。
对于大于 1 和小于 1 的箱线图,我如何将其分组为两个并排的箱线图?
然后我感到沮丧并尝试创建名为 largeexos 和 smallexos 的数据子集,在那里我将所有数据分成两个子集。但我也想不出一种方法让这两者都放在彼此旁边的箱线图上。有没有办法做到这一点?
最佳答案
boxplot(orbital_period_days~mass_jupiter>1,exo)
应该这样做
这是一个小的示例数据集(您应该提供一个):
exo <- structure(list(mass_jupiter = c(0.996, 0.002, 0.827, 2.11, 0.008,
0.012, 0.2, 1.839, 0.008, 0.299, 0.322, 0.002, 9.904, 0.635,
0.088), orbital_period_days = c(3.443, 0.002, 1.657, 6749.824,
0.032, 0.007, 2.207, 1.495, 0.002, 0.574, 98.317, 0, 5.918, 24.229,
0.002)), .Names = c("mass_jupiter", "orbital_period_days"), row.names = c(NA,
-15L), class = "data.frame")
par(mfrow=c(1,2))
boxplot(orbital_period_days~mass_jupiter>1,exo,boxwex=.5)
boxplot(orbital_period_days~mass_jupiter>1,exo,boxwex=.5,log="y")
par(mfrow=c(1,1))
这产生:
第二个轴是对数缩放的(考虑到您的数据可能是明智的)
当然,您需要设置标题、标签等,但这是基本思想。
关于r - 在 R 或 RStudio 中创建并排箱线图(按值分组),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43445381/