我要做的是生成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的数据子集,在那里我将所有数据分成两个子集。但是,我无法找到一种方法可以将两者都放在彼此相邻的盒子图上。还有办法做到这一点吗?
答案 0 :(得分:1)
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))
这会产生:
第二个轴是按比例缩放的(考虑到您的数据可能是明智的)
当然,您要设置标题,标签等等,但这是基本想法。