很抱歉,如果已经有一个关于此问题的线程,但我无法通过现有帖子找到解决我的问题的方法! 我尝试在 gplot2 代码中创建一个大数据框子集的条形图。这是我的 df 的简化示例:
地点 | 年 | 测量 | 价值 | 治疗 |
---|---|---|---|---|
1 | 22 | 参数1 | 3 | A |
2 | 23 | 参数2 | 2 | B |
2 | 24 | 参数1 | 4 | A |
1 | 22 | 参数3 | 2 | C |
我试图得到的基本上是位置 1 和 2 的不同条形图,根据治疗随时间的变化比较不同测量值。值应显示在 y 轴上,年份显示在 x 轴上,处理方式应显示在填充上。我想了解如何将所有这些放入我的 ggplot 代码中,而不是创建 1000 个子集。 这就是我想出的代码:
plot_location1<-
ggplot(df[df$location=="1",]+
aes(fill=treatment, y=total[total$measurement=="parameter1",] x=year) +
geom_bar(position="stack", stat="identity"))
我一直在研究这个结构,并不断收到不同的错误消息;上面的代码表示长度为 3 的列表没有意义。我很高兴学习如何在 ggplot 命令中有效地进行子集化,因为我猜这就是我做错的地方:P 非常感谢!
像这样吗?
library(ggplot2)
df <- data.frame(
location = c(1, 2, 2, 1),
year = c(22, 23, 24, 22),
measurement = c("parameter1", "parameter2", "parameter1", "parameter3"),
value = c(3, 2, 4, 2),
treatment = c("A", "B", "A", "C")
)
ggplot(df, aes(x = factor(year), y = value, fill = treatment)) +
geom_bar(stat = "identity", position = "stack") +
facet_wrap(~ location) +
labs(x = "Year", y = "Value", fill = "Treatment") +
theme_minimal()