【问题标题】:Creating Side By Side Boxplot in R or RStudio (grouped by values)在 R 或 RStudio 中创建并排箱线图(按值分组)
【发布时间】:2017-09-12 17:04:11
【问题描述】:

我想要做的是生成 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 的数据子集,我将所有数据分成两个子集。但我也想不出一种方法来让这两个箱线图彼此相邻。有没有办法做到这一点?

【问题讨论】:

  • 你应该提供一个可重现的例子。

标签: r boxplot


【解决方案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))

这会产生:

第二个轴是对数刻度的(考虑到您的数据可能是明智的)

当然你会想要设置标题、标签等等,但这是基本的想法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-22
    • 2016-09-14
    • 1970-01-01
    • 2017-06-14
    • 2011-05-14
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多