R语言中适合展示多国多年多品类肉类消费数据的图表类型是什么?
适合的图表选型
你要同时展示不同国家、三类产品、年份三个维度的消费数据,优先推荐分面多系列折线图,如果更看重同周期的数值对比,也可以选择分组并列柱状图:
- 分面折线图:按国家拆分出3个子图,X轴为年份、Y轴为消费量,用颜色区分三类产品,既能清晰看到每个国家内部不同品类的逐年消费变化,也方便跨国家对比趋势差异
- 分组柱状图:X轴按「年份+国家」分组,每组内放3根柱子分别对应三类产品,更适合对比同一年份不同国家、不同品类的消费数值差距
R绘图实现代码
你需要先加载ggplot2和tidyr包(未安装的话先执行install.packages(c("ggplot2","tidyr"))安装):
# 原始数据集 df <- data.frame(country=c("Italy", "France", "Germany","Italy", "France", "Germany","Italy", "France", "Germany","Italy", "France", "Germany"), years=c(1992, 1992, 1992,1995,1995,1995,1997,1997,1997,1999,1999,1999), meat=c(7,8,9,10,11,12,13,14,15,16,17,18), beef=c(70,80,90,100,110,120,130,140,150,160,170,180), fish=c(10,20,30,40,50,60,70,80,90,100,110,120) ) # 转换为长数据格式,适配ggplot2绘图逻辑 library(tidyr) df_long <- pivot_longer(df, cols = c(meat, beef, fish), names_to = "product", values_to = "consumption") # 1. 分面多系列折线图实现 library(ggplot2) ggplot(df_long, aes(x = years, y = consumption, color = product)) + geom_line(linewidth = 1) + geom_point(size = 2) + facet_wrap(~country) + # 按国家拆分面 labs(x = "年份", y = "消费量", color = "产品类型") + theme_bw() # 2. 分组并列柱状图实现 ggplot(df_long, aes(x = factor(years), y = consumption, fill = product)) + geom_col(position = position_dodge(0.8), width = 0.7) + facet_wrap(~country) + labs(x = "年份", y = "消费量", fill = "产品类型") + theme_bw()
内容的提问来源于stack exchange,提问作者DS_Beginner
相关产品推荐
相关产品推荐

