我想用分组变量x
的每个值分别绘制mean_1
和mean_2
。因此,每组需要两个条形图。
数据类型:
n <- 100
set.seed(123)
data <- data.frame(
x = round(runif(n, min = 3, max = 5)),
mean_1 = rnorm(n, mean = 0, sd = 1),
mean_2 = rnorm(n, mean = 0, sd = 1) + 0.3)
字符串
仅显示1条的方法:
library(ggplot2)
ggplot(data, aes(x = factor(x))) +
geom_bar(aes(y = mean_1), stat = "identity") +
geom_bar(aes(y = mean_2), stat = "identity") +
labs(x = "x",
y = "Abs") +
scale_fill_manual(values = c("blue", "red")) +
theme_minimal()
型
谢谢你
1条答案
按热度按时间r8uurelv1#
您应该首先使用
tidyr::pivot_longer
(或任何您喜欢的reshaping approaches)整理数据集,然后使用ggplot
,并对现有代码进行一些调整(见下文)数据字符串
要进行绘图,请在
aes()
中使用y = value
和fill = mean
,以及在geom_bar
中使用position = position_dodge()
:型
x1c 0d1x的数据
上面的图显示了
mean_1
和mean_2
的范围,所以如果这是可视化的目标,那么你已经准备好了。但是,对于这些数据,你可能更好地使用geom_boxplot
,它通过盒子,胡须和点按组显示几个汇总统计数据:型
的
正如@AllanCameron提到的,你可能想看看
... + geom_bar( stat = "summary", fun = mean, ...) + ...
,它计算并绘制每个mean_1
和mean_2
的平均值:型
这将产生以下图: