0

我正在尝试创建一个调查结果的小提琴图,一切看起来都很好,期待所有受访者提交相同答案的情况。在这些情况下,vioplot 什么都不显示,我从 vioplot 更改为 boxplot 以至少在答案所在的位置有一行。

我的代码:

plot(1,1,xlim=c(0,10),ylim=range(c(x1,x2,x3,x4,x5,x6,x7,x8,x9)),type="n",
 xlab="",ylab="",axes=FALSE)
axis(side = 1, at=2,label="")
axis(side = 1, at=5,label="")
axis(side = 1, at=8,label="")

axis(side=2)
vioplot(x1,at=1,col="blue",add=TRUE)
vioplot(x2,at=2,col="red",add=TRUE)
vioplot(x3,at=3,col="yellow",add=TRUE)
vioplot(x4,at=4,col="blue",add=TRUE)
vioplot(x5,at=5,col="red",add=TRUE)
vioplot(x6,at=6,col="yellow",add=TRUE)
boxplot(x7,at=7,col="blue", add=TRUE)
boxplot(x8,at=8,col="red",add=TRUE)
vioplot(x9,at=9,col="yellow",add=TRUE)

这就是箱线图的样子,使用 vioplot 代替,整列是空的。

在此处输入图像描述

任何想法我做错了什么以及代码应该是什么样的,以便我可以使用 vioplot?

4

1 回答 1

1

快速玩了一下这个包。没有太多选择,看起来它不能很好地处理这些情况。您可以尝试对数据进行抖动来为图形创建一些小的随机噪声,例如

library(data.table)
library(vioplot)

cdt <- setDT(copy(cars))
cdt[, new := 16]

vioplot(cdt$speed, cdt$dist, jitter(cdt$new, 0.0001))

我更喜欢的建议是在 ggplot2 包中试用 geom_violin。

http://www.sthda.com/english/wiki/ggplot2-violin-plot-quick-start-guide-r-software-and-data-visualization

更漂亮,更实用:)

ps 对不起,如果您不使用 data.table;我现在不编码了:)

于 2017-09-16T21:09:57.500 回答