今天介绍一个R包{vipor} [1],使用简单代码就能画出小提琴散点图(Violin Scatter Plot),结合了小提琴图和散点图,还能解决点与点重叠的问题。
install.packages("vipor")
library(vipor)
set.seed(1) # 设置随机种子,确保结果可重复
mydata_norm <- data.frame(
x = rep("Mean = 0, sd = 1", 200),
y = rnorm(200, mean = 0, sd = 1) # 正态分布数据
)
set.seed(2) # 设置随机种子,确保结果可重复
mydata_bi <- data.frame(
x = rep("Bimodal", 90),
y = c(rnorm(30, mean = -3), rnorm(60, mean = 3))
)
set.seed(3) # 设置随机种子,确保结果可重复
mydata_gamma <- data.frame(
x = rep("The Gamma Distribution", 50),
y = rgamma(50, 1) # 生成50个伽马分布随机数
)
set.seed(4) # 设置随机种子,确保结果可重复
mydata_cauchy <- data.frame(
x = rep("the Cauchy Distribution", 100),
y = rcauchy(100) # 生成100个柯西分布的随机数
)
summary(mydata_norm)
summary(mydata_bi)
summary(mydata_gamma)
summary(mydata_cauchy)
par(mfrow = c(1, 2))
vpPlot(mydata_norm$x, mydata_norm$y)
vpPlot(mydata_norm$x, mydata_norm$y,
pch = 23, # 不同图形
bg = "gold", # 图形内填充颜色,只适用 pch = 21:25
col = "black", # 图形的外圈线条颜色
lwd = 1.5, # 图形的线条粗细
cex = 1.8) # 图形的大小
上面结果中,左图是一个最基本的小提琴散点图,右图是修饰过的图。
其中的代码pch可以更换点的形状,在R中运行 ?pch 就能在帮助文件中找到一些有用的信息,比如数字与图形的对照图:par(mfrow = c(1, 3))
vpPlot(mydata_bi$x, mydata_bi$y)
vpPlot(mydata_gamma$x, mydata_gamma$y)
vpPlot(mydata_cauchy$x, mydata_cauchy$y)
iris中前四个变量为连续变量,最后一个为分类变量。
将前四个连续变量一一画出,并按照Species分组展示:
par(mfrow=c(1,1))
vpPlot(iris$Species, iris$Sepal.Length,
ylab = "Sepal_Length")
vpPlot(iris$Species, iris$Sepal.Width,
ylab = "Sepal_Width",
pch = 10,
las = 2)
vpPlot(iris$Species, iris$Petal.Length,
ylab = "Petal_Length",
pch = 16,
cex = 0.6)
vpPlot(iris$Species, iris$Petal.Width,
ylab = "Petal_Width",
pch = 6)
好啦,今天的内容就到这里。如果有帮助,记得分享给需要的人![1]. https://github.com/sherrillmix/vipor
公众号核心成员担任SCI杂志Associate Editor!▌课程相关咨询可添加R师妹微信: kefu_rstats