凹凸圖(bump chart)是折線圖的變形形式,這種圖常用于展示一組數據隨時間產生的排名而非絕對值的變化。下面,小編就基于ggbump包給大家展示如何繪制凹凸圖。
安裝、加載R包
#安裝R包
install.packages("ggbump")
install.packages("ggplot2")
install.packages("ggprism")
#加載R包
library(ggbump)
library(ggplot2)
library(ggprism)
數據
這里我們使用代碼生成作圖所需的數據,同理大家也可以導入自己準備好的數據:
df<-data.frame(
x=rep(1:6,4),
y=c(10,12,14,12,14,16, 12,14,12,10,12,12, 14,16,10,14,16,10, 16,10,16,16,10,14),
z=c(rep('g1',6),rep('g2',6),rep('g3',6),rep('g4',6)))
注:前兩列數據保證為數值型數據,否則后續(xù)繪圖可能會報錯!
image.png
繪圖
1、基礎繪圖
ggplot(df, aes(x = x, y = y, color = z)) +#數據
geom_bump(size = 1.2)
image.png
2、添加節(jié)點
ggplot(df, aes(x = x, y = y, color = z)) +#數據
geom_bump(size = 1.2)+#基本凹凸圖繪制
geom_point(size = 10)
image.png
3、調整整體主題并添加標簽:
ggplot(df, aes(x = x, y = y, color = z)) +#數據
geom_bump(size = 1.2)+#基本凹凸圖繪制
geom_point(size = 10)+#添加節(jié)點
scale_color_prism(palette = 'candy_bright')+#自定義顏色
theme_void() +#主題
geom_text(data = df,
aes(x = x, label = z),
size = 4, color='white')+#添加標簽
theme(legend.position = "none")#去除圖例
image.png