我有一个
形式的数据框|group|label1|label2|...|
|-----|------|------|---|
|groupname|value|value|...|
|groupname|value|value|...|
我想要做的是绘制一个标准图,其中label1,label2等位于x轴上,y轴是值(介于0和1之间的频率),groupname字段用作barplot的组ID。我不知道该怎么做。我需要重塑这些数据才能实现这一目标吗?
编辑:我已经在R-studio中包含了数据的快照,以防我对数据框看起来的解释不清楚。
答案 0 :(得分:1)
确实,您需要先重新组合数据(我使用了tidyr
包中的函数)。
以下是我使用的一些数据(下次你应该提供一些示例数据,这极大地帮助我们回答你的问题!)
require(ggplot2)
require(tidyr)
dat <- data.frame(
"id" = c("g1", "g2", "g3"),
"AA" = runif(3),
"AB" = runif(3))
dat_new <- dat %>%
gather(key = "labels", value = "value", AA:AB)
注意:我不确定你想要的情节,但这里有两个可能性。这些都是你想要的吗?
如果你想要分面:
ggplot(dat_new, aes(x = labels, y = value)) +
geom_col(width = 0.2) +
facet_grid(id ~ .)
如果您想按颜色分组:
ggplot(dat_new, aes(x = labels, y = value, fill = id)) +
geom_col(position = "dodge")