原创文章,转载需授权
给大家介绍一个比较有意思的图—小提琴图。为什么叫小提琴图呢?因为图形酷似小提琴。小提琴图并不常见,但在恰当的时候使用一下,会大大增加可视化效果,可以说是艺术与理性的完美结合
小提琴图可以看成箱线图与核密度图的结合,同时表达了分位数和密度,又不失艺术性,在进行多类别数据分布对比的时候,是个非常好的选择,下面教大家怎么用ggplot2画小提琴图,当然,R语言中还有一个包vioplot可以画,大家自行研究,比较简单。
面开始画图:
#设置工作空间
setwd("C:/Users/wuzhengxiang/Desktop/R语言可视化/小提琴图")
#安装与加载包
install.packages('ggplot2')
library(ggplot2)
#抽样部分数据
dsmall = diamonds[sample(nrow(diamonds),5000),]
#直接画图
ggplot(dsmall,aes(x=clarity,y=table,fill=clarity)) geom_violin(alpha=0.8,width=1)
#图形美化
ggplot(dsmall,aes(x=clarity,y=table,fill=clarity))
geom_violin(alpha=0.9999,width=1)
theme_bw()
theme(panel.background = element_rect(fill = "black"))
theme(legend.position = 'none') # 去掉图例
theme(panel.border = element_blank()) # 去掉外层边框
theme(panel.background = element_rect(fill = "gray91")) #灰色背景
theme(panel.grid=element_blank())
scale_fill_discrete(c=100, l=100)
ggsave('violin-02.png',dpi = 1080)#保存图片
#添加扰动点
ggplot(dsmall,aes(x=clarity,y=table,fill=clarity))
geom_violin(alpha=0.9999,width=1)
theme_bw()
geom_jitter(colour='white')
theme(panel.background = element_rect(fill = "black"))
theme(legend.position = 'none') # 去掉图例
theme(panel.border = element_blank()) # 去掉外层边框
theme(panel.background = element_rect(fill = "black")) #黑色背景
theme(panel.grid=element_blank())
scale_fill_discrete(c=100, l=100)
ggsave('violin-03.png',dpi = 1080)#保存图片
#更换数据看看
ggplot(dsmall,aes(x=clarity,y=price,fill=clarity))
geom_violin(alpha=0.95,width=1)
geom_jitter(alpha=0.5)
theme_bw()
theme(panel.background = element_rect(fill = "black"))
theme(legend.position = 'none') # 去掉图例
theme(panel.border = element_blank()) # 去掉外层边框
theme(panel.background = element_rect(fill = "gray91")) #灰色背景
theme(panel.grid=element_blank())
scale_fill_discrete(c=100, l=100)
ggsave('violin-04.png',dpi = 1080)#保存图片
#极坐标下的小提琴图
ggplot(dsmall,aes(x=clarity,y=table,fill=clarity))
geom_violin(alpha=0.95,width=1)
theme_bw()
coord_polar()
theme(legend.position = 'none')
scale_fill_discrete(c=100, l=100)
ggsave('violin-05.png',dpi = 1080)#保存图片
,