【问题标题】:Boxplot with many variables and categories具有许多变量和类别的箱线图
【发布时间】:2017-02-03 14:26:55
【问题描述】:

是否可以在 R 中创建类似的东西?

我想为产品 A 包含 7 个不同的变量,为其余产品 B、C 包含相同的 7 个变量...

但我也想包含汇总值(最小值、平均值和最大值)。

我怎样才能创建这个?

我已经将所有不同的变量作为“值”。 我正在尝试类似的东西 蛋白质~产品 但我想要产品 AAA 中的所有变量。如果可能的话,所有产品都一样(由于变量的数量,我不知道这是否可能)。

这是数据的一部分..

product  protein  fat  moisture ash  fiber  starch  sugar 
  AAA     49      1.0    NA      NA   10     7.4    6.1 
  BBB     35      1.6    NA      NA   10.6   8.5    10.0 
  AVF     40      1.2    NA      NA    6     7.8    6.3

谢谢!

【问题讨论】:

  • 如果您使用dput(MyData) 提供数据,然后将结果粘贴到您的问题中,将会很有帮助。
  • @G5W 我试过了,但是数据库太大了。我看不到完整的答案...

标签: r boxplot summary


【解决方案1】:

您可以从这个示例开始您的冒险。 编辑:我添加了一些信息,如何将您的数据格式转换为绘图所需的长数据格式。 还可以在类似问题中找到更多信息: Plot multiple boxplot in one graph

# simulate the data
set.seed(314)

id <- rep(1:100, each = 3)
prod <- paste("product",rep(letters[1:3], each=300))
ing <- rep(c('protein','fat','starch'), 300)
mg <- rnorm(900, 5, 2)

df <- data.frame(prod, ing, mg, id)

#reconstruct your data format
yourdata <- df %>% group_by(id, prod) %>% spread(ing, mg)


library(ggplot2)
library(dplyr)
library(tidyr)

# get your format in long format
pd <- yourdata %>% gather(ing, mg, -id, -prod)

# use the long format for the plot

ggplot(pd, aes(x = ing, y = mg, fill = ing)) + geom_boxplot() +
  facet_grid(~prod)

【讨论】:

  • @Wietze134 这看起来真不错!正是我想做的事!但是,我的一个问题是,如果 x、mean 和 sd 对于所有参数都相等,那么您的“mg”是完美的,对吧?在我的情况下,我需要每个“产品”的每个“ing”的摘要(每个产品的分析)......
  • 您的数据仅显示 3 行。如果每个产品只有一行,就没什么好总结的了,是吗?
  • @Wietze134 我总共有140000行..所以我真的需要总结一下..这个案例只是一个例子,否则不可能..我的错,我忘了说。
  • 好的,没问题。因为我生成了我的数据,所以都是一样的,只是一个插图。如果您在数据上使用pd &lt;- yourdata %&gt;% gather(ing, mg, -product),那么它的行为应该相同。有一种方法可以自定义条形图来绘制最小值、平均值、最大值,而不是正常的东西。信息可以在这里找到:docs.ggplot2.org/current/geom_boxplot.html
  • @Wieztze134 我无法将您的代码应用到我的数据中。您能帮帮我吗? id
猜你喜欢
  • 2021-12-20
  • 2023-04-03
  • 1970-01-01
  • 2015-09-24
  • 2020-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-12
相关资源
最近更新 更多