01. Violin Chart小提琴图

1.1 定义

小提琴图可以可视化一个或多个组的数值变量的分布。非常适合大型数据集,可用于替换箱线图。
每个“小提琴”代表一个组或一个变量。该形状表示变量的密度估计值:特定范围内的数据点越多,该范围内的小提琴就越宽。它非常接近箱线图,但可以更深入地了解分布。
https://www.data-to-viz.com/graph/violin.html

1.2 实现

1.2.1 ggplot2

ggplot2-geom_violin()

library(ggplot2)
# create a dataset
data <- data.frame(
  name=c( rep("A",500), rep("B",500), rep("B",500), rep("C",20), rep('D', 100)  ),
  value=c( rnorm(500, 10, 5), rnorm(500, 13, 1), rnorm(500, 18, 1), rnorm(20, 25, 4), rnorm(100, 12, 1) )
)

# Most basic violin chart
p <- ggplot(data, aes(x=name, y=value, fill=name)) + # fill=name allow to automatically dedicate a color for each group
  geom_violin()
#p 

关于输入格式的说明
long format:一行代表一次观测,对一个对象不同时刻的观测分布在不同的行之中
X axis: it needs to be have the class factor
Y axis: it needs to have the class numeric

# Basic violin
ggplot(data, aes(x=name, y=value, fill=name)) + 
  geom_violin()

wide format:一行不代表一次观测,对一个对象不同时刻的观测集中在同一行之中
需要用tidyr 库的 gather() 函数转换

data_wide <- iris[ , 1:4]
#R内置数据集Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理。Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集。数据集包含150个数据样本,分为3类,每类50个数据,每个数据包含4个属性。可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。
#其它比较流行的数据集还有Adult,Wine,Car Evaluation等。
Sepal.Length	Sepal.Width	Petal.Length	Petal.Width
5.1	3.5	1.4	0.2
4.9	3.0	1.4	0.2
4.7	3.2	1.3	0.2
4.6	3.1	1.5	0.2
library(tidyr)
library(ggplot2)
library(dplyr)
data_wide %>% 
  gather(key="MesureType", value="Val") %>%
  ggplot( aes(x=MesureType, y=Val, fill=MesureType)) +
    geom_violin()
#%>% (向右操作符,forward-pipe operator)是最常用的一种操作符,就是把左侧准备的数据或表达式,传递给右侧的函数调用或表达式进行运行,可以连续操作就像一个链条一样。现实原理如下图所示,使用%>%把左侧的程序的数据集A传递右侧程序的B函数,B函数的结果数据集再向右侧传递给C函数,最后完成数据计算。
#gather在这的功能是行列转置,即将行名转置为第一列"MesureType",其他测量数值转化为第二列"Val"
#简单看一下数据情况
dd1 <- data_wide %>% 
  gather(key="MesureType", value="Val")
head(dd1)
    MesureType Val
1 Sepal.Length 5.1
2 Sepal.Length 4.9
3 Sepal.Length 4.7
4 Sepal.Length 4.6
5 Sepal.Length 5.0
6 Sepal.Length 5.4
#ggplot2的简单用法
#aes 指定参与作图的每个变量分别映射到哪些图形特性, 比如映射为x坐标、y坐标、颜色、形状等。 这些映射称为aesthetic mappings或aesthetics,fill一般是填颜色,这个时候就参数应该是分组。

后续会不定时更新,关注不迷路~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值