--原文链接--
坡度图顾名思义是展示坡度变化的图形,其实他和哑铃图有异曲同工之处,只不过坡度图可以更加清楚的展示数据前后的变化趋势,具体是增加了还是减少了。坡度图的绘制可以在ggplot2中进行,可以看作为点图和线图的整合,此外还加了两条竖线用来划定坡度的界限。


上图展示了小编2014年和2021年,两年在各个类别上的消费水平差异性。蓝线代表了2021年的消费相比于2014年增加的项目,红线代表了降低的项目。通过图形可以清楚的看到哪些项目是增加的,增加的幅度有多大。

library(ggplot2)
library(reshape2)
data <- read.table("clipboard",header=T,sep='\t')
colnames(data) <- c("class", "2014", "2021")
left_label <- paste(data$class, round(data$'2014'),sep=",")
right_label <- paste(data$class, round(data$'2021'),sep=",")
data$class <- ifelse((data$'2021' - data$'2014') < 0, "red", "green")
(p <- ggplot(data) +
geom_segment(aes(x=1, xend=2, y=`2014`, yend=`2021`, col=class), size=.75, show.legend=F) + #连接线
geom_vline(xintercept=1, linetype="solid", size=.1) + # 1952 年的垂直直线
geom_vline(xintercept=2, linetype="solid", size=.1) + # 1957 年的垂直直线
geom_point(aes(x=1, y=`2014`), size=3,shape=21,fill="grey80",color="black") + # 1952 年的数据点
geom_point(aes(x=2, y=`2021`), size=3,shape=21,fill="grey80",color="black") + # 1957 年的数据点
scale_color_manual(labels = c("Up", "Down"), values = c("green"="blue","red"="red")) +
xlim(.5, 2.5)+ylim(0,4000))
# 添加文本信息
(p <- p + geom_text(label=left_label, y=data$`2014`, x=rep(1, 15), hjust=1.1, size=3.5))
(p <- p + geom_text(label=right_label, y=data$`2021`, x=rep(2, 15), hjust=-0.1, size=3.5))
(p <- p + geom_text(label="2014", x=1, y=1.08*(max(data$`2014`, data$`2021`)), hjust=1.2, size=5))
(p <- p + geom_text(label="2021", x=2, y=1.08*(max(data$`2014`, data$`2021`)), hjust=-0.1, size=5))
(p<-p+theme_void())
精彩推荐:
R语言绘制散点图geom_point
R语言添加拟合曲线geom_smooth
R语言箱线图boxplot
R语言线图geom_line

网友评论