簡體   English   中英

疊加小提琴情節ggplot2

[英]Overlay violin plots ggplot2

我想在第二部分中繪制兩個系列的十個小提琴圖:

library(ggplot2)
#generate some data

coco1<-rnorm(10000,0,1)
coco2<-c(runif(10000))
decile<-rbinom(10000,9,1/2)+1
coconut<-data.frame(coco1,coco2,decile)

#draw the violin plots of the coco1 serie
p <- ggplot(coconut, aes(factor(decile), coco1))
p<-p + geom_violin(aes(alpha=0.3,colour="#1268FF"))
p

#draw the violin plots of the coco2 serie
q <- ggplot(coconut, aes(factor(decile), coco2))
q<-q + geom_violin(aes(alpha=0.3,colour="#3268FF"))
q

我想在同一張圖上繪制小提琴曲線“p”和“q”,我希望每個小提琴曲線“q”都超過相應的“p”小提琴曲線。

您可以將第二個繪圖的geom_violin添加到第一個繪圖中:

p <- ggplot(coconut, aes(factor(decile), coco1))
p <- p + geom_violin(aes(colour = "#1268FF"), alpha = 0.3)
q <- p + geom_violin(aes(y = coco2, colour = "#3268FF"), alpha = 0.3)

現在, q包含兩個版本的小提琴。 在此輸入圖像描述

順便說一句:如果你想擺脫顏色圖例,你必須指定aes之外的colour

另一種方法是將position設置為“身份”。 這個例子還使用tidyr::gather來移動data.frame ,以便更容易在ggplotggplot

library(ggplot2)

coco1<-rnorm(10000,0,1)
coco2<-c(runif(10000))
decile<-rbinom(10000,9,1/2)+1
coconut<-tidyr::gather(
    data.frame(coco1,coco2,decile),
    name,value,coco1,coco2)

p <- ggplot(coconut)+
    aes(x=factor(decile),y=value,color=name)+
    geom_violin(alpha=0.3,position="identity")
p

ggsave("example_identity.png",p)

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM