r - 如何使用 geom_bar() 在 R 中创建两个分组列
问题描述
必须有一种简单的方法来创建一组用于感知列的分组条和另一组用于严重列的分组条,每个组中的各个条是各个区域的值。最终图像应与附加图像相似。谢谢!
by_region <- country_obs_df %>%
group_by(Region) %>%
summarize(
#region_avg_gdp = GDPperUS,
#region_avg_co2 = CO2emi,
#region_avg_pop = Population.2008,
region_avg_aware = mean(Aware),
region_avg_serious = mean(Serious)
)
ggplot(by_region) +
geom_col(mapping = aes(fill = Region, x = Region, y=region_avg_aware), position = "dodge") +
labs(y = "Percent")
解决方案
当然,有可能,您必须将数据重新格式化为 long,以便您拥有行格式所需的变量以便进行绘图。这里使用您共享的数据屏幕截图的代码:
library(tidyverse)
#Data
df <- data.frame(Region=c('Africa','Asia','Europe','Europe (North America)',
'Europe (Oceania)','Latin America & Caribbean'),
region_avg_aware=c(39.9,60.9,88.3,96.6,97.3,63.8),
region_avg_serious=c(82.3,76.3,67.7,71.1,78.2,93.8))
#Plot
df %>% pivot_longer(-Region) %>%
ggplot(aes(x=name,y=value,group=Region,fill=Region))+
geom_bar(stat = 'identity',position = position_dodge(0.9))+
theme_bw()+
theme(axis.text = element_text(color='black',face='bold'),
axis.title = element_text(color='black',face='bold'),
legend.text = element_text(color='black',face='bold'),
legend.title = element_text(color='black',face='bold'),
panel.grid = element_blank())+
xlab('Variable')
输出:
推荐阅读
- python - 如何使用 python-pptx 从形状的连接点到另一个形状的连接点画一条线?
- firebase - 在颤振中添加if条件后,列表视图卡不起作用
- python - python函数参数列表中的字符串
- python-3.x - 如何解决ansible问题:无法获取远程文件的信息...不是目录
- python - QTableview checkitems,从对应的第二列获取值
- php - 如何在 Laravel 中将数据从私有函数传递到公共函数?
- pytest - 如何在不同的进程中调用带有夹具的测试
- python - 是否可以在基于 QWidget 的应用程序上使用 QQmlApplicationEngine?
- javascript - 如何在现有的本地存储对象中将键值添加到对中?
- python - 如何在 Pandas 数据框中正确绘制条形图?x 值继续显示为索引