如何用R绘制各国历年人均用电量变化曲线?附处理说明
没问题,我来帮你一步步搞定这个需求~
实现步骤详解
1. 先加载需要的工具包
首先得把数据整理和绘图要用的包装上并加载好:
# 如果没装过包先运行这行:install.packages(c("tidyr", "dplyr", "ggplot2")) library(tidyr) library(dplyr) library(ggplot2)
2. 把宽格式数据转成 tidy 格式(关键步骤)
假设你的原始数据框名叫 electricity_data,结构应该是「国家列 + 各年份列」的宽表形式。我们用 tidyr::pivot_longer 把年份列转成单列,同时把年份转成数值型:
tidy_electricity <- electricity_data %>% # 把所有年份列(19xx/20xx开头)转成长格式 pivot_longer( cols = starts_with("19") | starts_with("20"), # 匹配所有年份列 names_to = "year", # 新生成的年份列名 values_to = "electricity_use" # 对应年份的人均用电量列名 ) %>% # 把年份从字符型转成数值型,方便后续绘图和筛选 mutate(year = as.numeric(year)) %>% # 筛选美国 + 1960-2011年的数据 filter(country == "United States", year >= 1960, year <= 2011)
⚠️ 小提示:
- 如果你的国家列名不是
country(比如叫Country Name),记得替换成实际列名 - 如果年份列带前缀(比如
Y_1960),可以加一行处理:mutate(year = as.numeric(str_remove(year, "Y_"))) - 有缺失值的话,可追加
drop_na(electricity_use)删掉缺失行,避免绘图断点
3. 绘制年度变化曲线
用 ggplot2 画折线图,直观展示变化趋势:
ggplot(tidy_electricity, aes(x = year, y = electricity_use)) + geom_line(color = "#2980b9", linewidth = 1.2) + # 设置线条颜色和粗细 labs( title = "美国1960-2011年人均用电量年度变化", x = "年份", y = "人均用电量(千瓦时)" ) + theme_minimal() # 用简洁清爽的主题
运行完上面的代码,你就能得到一条清晰的美国人均用电量年度变化曲线啦~
内容的提问来源于stack exchange,提问作者Dennis
相关产品推荐
相关产品推荐

