【发布时间】:2019-12-09 10:20:09
【问题描述】:
大多数可用的答案是指将多个 ggplots 组合在一起。我正在尝试一起生成多个 ggplots。 我分别为多个变量生成了条形图,然后使用“ggarrange”将它们组合在一起。
创建示例数据集
y0 = c(1,0,1,1,0,1,0,1,1,0)
x1 = c("A","B","A","B","A","B","A","B","A","A")
x2 = c(1,2,2,1,1,2,2,1,2,2)
x3 = c("A","B","C","D","E","E","D","C","B","A")
df<- data.frame(y0,x1,x2,x3);
df
计算 x1 变量的统计数据
x1_count <- df %>%
group_by(x1) %>%
summarise(Count=n(), Num=sum(y0)) %>%
mutate(Rate=Num/Count*100.0)
为 x1 变量生成 ggplot
A<- ggplot(x1_count, aes(x=x1, y=Rate)) +
geom_bar(width=0.5, stat="identity") +
ggtitle('Rate by x1') +
xlab("x1") +
ylab("Rate (%)") +
theme(plot.title = element_text(hjust = 0.5),legend.position='bottom')
计算 x2 变量的统计数据
x2_count <- df %>%
group_by(x2) %>%
summarise(Count=n(), Num=sum(y0)) %>%
mutate(Rate=Num/Count*100.0)
为 x2 变量生成 ggplot
B<- ggplot(x2_count, aes(x=x2, y=Rate)) +
geom_bar(width=0.5, stat="identity") +
ggtitle('Rate by x2') +
xlab("x2") +
ylab("Rate (%)") +
theme(plot.title = element_text(hjust = 0.5),legend.position='bottom')
B
将它们组合在一起
figure1 <- ggarrange(A,B,ncol = 2, nrow = 1)
figure1
我正在尝试生成 ggplots A 和 B,以及与之相关的计算,而不是单独进行。
【问题讨论】:
-
似乎您可能想要创建一个函数来进行汇总和绘图,然后您可以在循环中使用它,循环遍历变量的名称并返回绘图列表。虽然比您正在做的事情更简单(因为我没有做任何总结),但我写了一个使用函数和
purrr::map()循环here 的示例,您可能会觉得相关。