公众号:R 语言与SPSS学习笔记
哑铃图(Dumbbell plot),顾名思义,是长得像哑铃的图。当样本个数为两个时,图形类似哑铃,此外,它也用来绘制多个样本,类似于多个“哑铃”的节点连接。此种图形是展示数据差异的可视化图表之一,主要用来表征不同指标的不同组的情况。
1.加载包
library(tidyverse)
library(tidyquant)
library(ggalt)
2.查看数据
今天用到的数据集是mpg
head(mpg)
3.数据预处理
主要用到以下三个变量:hwy(每加仑燃油经济性英里数)、year(车型年份)、model(厂商车型说明)。
mpg_by_year_tbl<- mpg %>%
select(hwy, year, model, class) %>%#数据选择
pivot_wider(
names_from
=year,
values_from =hwy,
id_cols=c(class,model),
values_fn=function(x) mean(x, na.rm =TRUE),
names_prefix ="year_"
) %>%#将数据转换为宽数据格式
mutate(model = fct_reorder(model, year_2008)) %>%#生成新变量
drop_na()#删除缺失值
mpg_by_year_tbl
4.绘制哑铃图
#使用x 和 xend = year_2008指定哑铃图的起点和终点
g1=mpg_by_year_tbl %>%
ggplot(aes(x = year_1999, xend = year_2008,y = model, group = model)) +
geom_dumbbell(colour="#a3c4dc",
colour_xend="#0e668b",size=4.0,
dot_guide=TRUE,
dot_guide_size=0.15,
dot_guide_colour ="grey60"
)
g1
5.哑铃图的修饰
g2 <-g1 +
labs (
title = "Change Vehicle Fuel Economy between 1999 and 2008",
x="Fuel Economy (MPG)", y = "Vehicle Model"
)+
theme_tq()+
theme(
panel.grid.minor=element_blank(),
panel.grid.minor.y=element_blank(),
panel.grid.minor.x=element_line(),
axis.ticks=element_blank(),
panel.border=element_blank()
)
g2
以上例子比较了1999年和2008年各种不同车型燃油经济性的差异。很直观的可以看到2008年比1999年个车型的燃油经济性更高,同时不同车型的燃油经济性也能看到明显差异。