如何正确绘制各大陆历年总产量变化的可视化图表?
各大陆历年总产量变化趋势可视化解决方案
一、数据预处理
原始数据的Year_Range为区间字符串,需先转换为可用于时间序列分析的年份值,同时按大陆和年份汇总总产量(同一大陆同一时间段可能存在多个地区数据):
# 加载依赖包 library(ggplot2) library(dplyr) library(stringr) # 处理数据:提取年份并按大陆+年份汇总总产量 processed_data <- merge_data %>% mutate(Year = case_when( # 提取区间起始年份 str_detect(Year_Range, "-") ~ as.integer(str_extract(Year_Range, "^\\d{4}")), # 提取Until后的年份 str_detect(Year_Range, "Until") ~ as.integer(str_extract(Year_Range, "\\d{4}$")), TRUE ~ NA_integer_ )) %>% group_by(continent, Year) %>% summarise(Total_Production = sum(Total_Production, na.rm = TRUE)) %>% ungroup() %>% arrange(Year)
二、修正后的可视化代码
采用折线图展示各大陆总产量随年份的变化趋势,用颜色区分大陆,添加数据点增强可读性:
ggplot(processed_data, aes(x = Year, y = Total_Production, color = continent, group = continent)) + geom_line(linewidth = 1.2) + geom_point(size = 3) + # 自定义大陆配色 scale_color_manual(values = c( "Americas" = "blue", "Asia" = "red", "Africa" = "green", "Oceania" = "purple", "Europe" = "orange" )) + labs( title = "各大陆历年总产量变化趋势", subtitle = "时间范围:1960 - 2018", x = "年份", y = "总产量", color = "大陆" ) + theme_minimal() + # 可选:启用对数坐标轴,解决不同大陆产量差距过大导致的可视化失衡问题 scale_y_log10(labels = scales::comma)
三、原代码问题分析
- 原代码使用
geom_point()结合经纬度绘制的是地理散点图,仅能展示单个地区的地理位置与产量大小,完全无法体现时间维度的变化趋势。 - 未对数据按大陆和年份做汇总处理,同一大陆的多地区数据分散展示,无法反映大陆整体的总产量变化。
内容的提问来源于stack exchange,提问作者Insurance Reports
相关产品推荐
相关产品推荐

