暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

R语言绘图|哑铃图(dumbbell plot)

1032
点击关注了解更多哦

哑铃图(dumbbell plot)可以用来展示一组数据随时间发展的变化状况,或者用于比较不同类别之间的数值差异。本文以R语言中的ggplot2为例,展示哑铃图的绘制过程。

1、数据准备

国家统计局[1]官网上关于2015年及2020年我国31个省份人均GDP(未包含港澳台数据)为例,绘制2015年到2020年各省份人均GDP变化状况的哑铃图。

setwd("C:/Users/Acer/Desktop")
#install.packages("reshape2")
#install.packages("ggplot2")
#install.packages("RColorBrewer")
library(reshape2)
library(ggplot2)
library(RColorBrewer)

dump <- read.csv("哑铃图.csv")
head(dump)
#  province  y2015  y2020
#1     北京 114662 164889
#2     天津  71021 101614
#3     河北  35653  48564
#4     山西  32375  50528
#5     内蒙  51633  72062
#6     辽宁  46069  58872
dumplot <- melt(dump, id.vars = "province", variable.name = "year", value.name = "Per.GDP")
dumplot$year <- factor(dumplot$year, levels = c("y2015","y2020"), labels = c("2015","2020"))
str(dumplot)
#'data.frame': 62 obs. of  3 variables:
# $ province: chr  "北京" "天津" "河北" "山西" ...
# $ year    : Factor w/ 2 levels "2015","2020": 1 1 1 1 1 1 1 1 1 1 ...
# $ Per.GDP : int  114662 71021 35653 32375 51633 46069 36391 30583 111081 89426 ...

2、绘图

2.1 哑铃图

ggplot(dumplot, aes(x =  Per.GDP, y = province, fill = year )) + 
  geom_line(aes(group = province)) + 
  geom_point(shape = 21, size = 4, color = "black") + 
  scale_fill_brewer(palette = ("Set1")) + 
  labs(x = "人均GDP(元)", y = "省份", fill = "年份") + 
  theme_bw() 

2.2 根据均值进行排序

ggplot(dumplot, aes(x =  Per.GDP, y = reorder(province, Per.GDP) , fill = year )) + 
  geom_line(aes(group = province)) + 
  geom_point(shape = 21, size = 4, color = "black") + 
  scale_fill_brewer(palette = ("Set1")) + 
  labs(x = "人均GDP(元)", y = "省份", fill = "年份") + 
  theme_bw() 

2.3 根据均值进行逆向排序

ggplot(dumplot, aes(x =  Per.GDP, y = reorder(province,desc(Per.GDP)) , fill = year )) + 
  geom_line(aes(group = province)) + 
  geom_point(shape = 21, size = 4, color = "black") + 
  scale_fill_brewer(palette = ("Set1")) + 
  labs(x = "人均GDP(元)", y = "省份", fill = "年份") + 
  theme_bw() 

3、其他

关于R语言其他绘图可关注公众号查看其他推文。本文数据可在后台回复20220417获取。

参考资料

[1]

国家统计局: https://data.stats.gov.cn/index.htm


文章转载自日常分享的小懒猫,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论