根据RStudio窗口大小和打印方法更改打印外观
我试图使用vioplot包在R中绘制分布图;我的图由点的散点图组成,并在散点图顶部绘制小提琴图(表示这些点的“箱子”) 但是,绘制数据的不同方法会导致绘图中的特征略有不同。如果使用循环绘制所有小提琴图,小提琴图尾部将向下延伸至最低点,但如果单独绘制,小提琴图尾部将不会到达异常值。此外,调整打印窗口的大小(然后重新打印)也会更改小提琴打印尾部的显示方式 因为我得到了这些不同的图,我想知道如何判断哪个图是数据的正确表示,以及如何产生一致的结果。我在vioplot中使用了“range”和“coef”参数,以使绘图更加一致,但这并不奏效根据RStudio窗口大小和打印方法更改打印外观,r,R,我试图使用vioplot包在R中绘制分布图;我的图由点的散点图组成,并在散点图顶部绘制小提琴图(表示这些点的“箱子”) 但是,绘制数据的不同方法会导致绘图中的特征略有不同。如果使用循环绘制所有小提琴图,小提琴图尾部将向下延伸至最低点,但如果单独绘制,小提琴图尾部将不会到达异常值。此外,调整打印窗口的大小(然后重新打印)也会更改小提琴打印尾部的显示方式 因为我得到了这些不同的图,我想知道如何判断哪个图是数据的正确表示,以及如何产生一致的结果。我在vioplot中使用了“range”和“coef”参
谢谢 也许我错了,但我认为小提琴本身并没有那么明确,只是一种易于理解的数据表示形式。另一方面,箱线图(与小提琴内部的vioplot一起绘制)更为重要,因为它的条形图告诉您第50、25和75个百分位(尽管vioplot中的第5个百分位出于某种原因是一个白点),胡须取决于您如何绘制,但在vioplot的情况下,我认为它是第95和第5个百分位 如果您想要更高的可定制性,请使用ggplot:
library(reshape2) #for melt()
library(ggplot2)
uniform<-runif(200,-4,4)
normal<-rnorm(200,0,3)
df <- data.frame(x=normal, y=uniform) %>% melt()
ggplot(df, aes(x=variable, y=value)) +
geom_violin() +
geom_boxplot()
谢谢你的回答。我发现ggplot更易于使用,并且在绘制小提琴图时更加一致——它也比vioplot()函数更易于定制。非常感谢。
library(ggbeeswarm)
ggplot(df, aes(x=variable, y=value)) +
geom_violin() +
geom_boxplot(outlier.alpha = 0) +
geom_beeswarm()