【问题标题】:ggplot2: How do I create a simple boxplot from a dataframe?ggplot2:如何从数据框创建一个简单的箱线图?
【发布时间】:2012-11-06 09:38:22
【问题描述】:

我一整天都在尝试做这个箱线图。我很快就放弃了。请帮忙。 我只想为我的 3 个组 A、B 和 C 绘制一个简单的箱线图。 这是我的数据简化:

> mydata 
   A01 A02 A03 B01 B02 B03 C01 C02 C03
id0001    1    2    3    6    7    8    11    12    13

A01、A02 和 A03 应该构成 A 等的置信区间。如何在 x 轴上绘制 3 个组的非常简单的箱线图? 虽然盒子也很棒,但如果有人能帮助我制作类似于this one 的情节,我将不胜感激。最终,我想制作一个包含多个 ID 的图表,所以它看起来像 this one,但带有像第一个一样的错误栏。

如果有人可以帮助我或给我一些建议,我将不胜感激!

谢谢。

【问题讨论】:

  • 您没有足够的数据来绘制箱线图。 IIRC 箱线图只有在每组有超过 6 个观察值时才有意义。您显示的数据每组只有 3 个观察值。改用点图。
  • 我确实有更多数据,这只是数据提取的一个示例。每组我有大约 6-7 个值。无论如何,我相信应该可以仅用 3 个数据点绘制置信区间或误差线。我链接到的图像基于每行(基因)的 3 个重复,因此每组只有 3 个值。
  • 您似乎将置信区间/误差线与箱线图混淆了。箱线图描述为here,而置信区间描述为here。你要哪个?
  • 感谢您的关注。你可能是对的。我在学。也许箱形图与这些数据有误。如何查看带有误差线或置信区间的数据,例如我链接的图像?你有什么想法吗?我认为它们就像没有盒子的箱形图。可能他们是别的东西。
  • 你认为我应该提出一个新问题并删除箱线图部分吗?

标签: r boxplot ggplot2


【解决方案1】:

假设您确实想要一个箱线图(或 ggplot2 中的任何其他图),您需要将数据强制转换为正确的格式。这是一个基于与您显示的数据相似的数据的示例:

df <- data.frame(matrix(c(1:3, 6:8, 11:13), nrow = 1))
names(df) <- paste0(rep(LETTERS[1:3], each = 3), 1:3)

sdf <- stack(df)

sdf <- transform(sdf, group = substring(ind, 1, 1),
                 obs = substring(ind, 2))

数据sdf 现在是标准化格式(或长格式):

> head(sdf)
  values ind group obs
1      1  A1     A   1
2      2  A2     A   2
3      3  A3     A   3
4      6  B1     B   1
5      7  B2     B   2
6      8  B3     B   3

然后可以轻松绘制这些数据:

require(ggplot2)
plt <- ggplot(sdf, aes(x = group, y = values)) +
    geom_boxplot()
plt

制作:

【讨论】:

    猜你喜欢
    • 2019-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多