【问题标题】:ggplot2 boxplot from count table计数表中的ggplot2箱线图
【发布时间】:2015-12-10 14:17:07
【问题描述】:

我有一个用另一个工具生成的计数表,我想用 ggplot2 从中得到一个箱线图。

例如,假设我有:

df1 = data.frame(nSiblings = c(0, 1, 2), count = c(10, 15, 12))

而不是

df2 = data.frame(nSiblings = c(rep(0, 10), rep(1, 15), rep(2, 12)))

我知道如何从第二个数据框生成箱线图:

qplot(y=df2$nSiblings, x=1, geom = "boxplot")

我知道如何从第一个数据帧生成直方图:

ggplot(df1, aes(x = nSiblings, y = count)) + geom_bar(stat = "identity")

但是如何从第一个数据框中获取箱线图?

【问题讨论】:

  • 仅供参考,您不需要其他工具从 df2 生成 df1。例如,您可以这样做library("dplyr"); df1 <- count(df2, nSiblings)。使用 base R 也很容易做到。
  • @antoine-sac:谢谢,但我知道。这个数据框是另一个工具的输出(实际上,计数可能超过一百万)。
  • 还有一个“重新生成”大型数据帧的选项,但是当计数>1e6 时,计算/内存效率不高。

标签: r ggplot2 boxplot


【解决方案1】:

Ggplot 可以处理权重,所以你可以试试这个:

ggplot(df1, aes(x=1,y=nSiblings,weights=count)) + geom_boxplot()

【讨论】:

  • 对我来说(R 版本 3.6.3,ggplot2 版本 3.2.1)它需要是“权重”而不是“权重”(最后去掉“s”)。否则会抛出错误。
猜你喜欢
  • 2018-02-14
  • 1970-01-01
  • 2016-12-10
  • 1970-01-01
  • 1970-01-01
  • 2017-10-13
  • 1970-01-01
  • 1970-01-01
  • 2011-06-24
相关资源
最近更新 更多