2017-09-16 59 views
0

我試圖創建一個調查結果的小提琴情節,並且一切看起來都很好,預計所有受訪者都會提交相同答案的情況。在這些情況下,vioplot什麼都不顯示,並且我從vioplot更改爲boxplot,至少有一行是答案。R小提琴情節(vioplot)沒有顯示相同數值的數據

我的代碼:

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相反,整列是空的。

enter image description here

任何想法,我做錯了什麼的代碼應該是這樣的,這樣我可以使用vioplot?

+1

如果你沒有任何變化,那麼有一個這樣的情節是有道理的。你沒有做錯什麼。 – ekstroem

+0

問題在於顏色標記了問題所在的類別,因此用戶將無法看到受訪者提交相同答案的類別,因爲我只是有一條黑線。我可以在Photoshop中繪製它,但這是我想要做的最後一件事:-) – Ryan

回答

0

有一個快速發揮與包。沒有太多的選擇,看起來不像它處理好這些情況。您可以嘗試使用數據的抖動來爲圖形創建一些小的隨機噪聲。

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

漂亮,多個官能:)

P.S.對不起,如果你不使用data.table;我現在不編碼:)

相關問題