2013-06-26 6 views
13

में वायलिन भूखंडों पर मध्य और चतुर्भुज मैं ggplot2 के साथ कुछ वायलिन भूखंडों को आकर्षित करना चाहता हूं, लेकिन मैंने देखा कि औसत और प्रथम और तीसरा क्वार्टाइल स्वचालित रूप से प्रदर्शित नहीं होता है। मेरा मानना ​​है कि ये भूखंड इस जानकारी के साथ अधिक जानकारीपूर्ण होंगे। क्या कोई इसे करने का तरीका जानता है?ggplot2

उत्तर

19

मैं एक गूगल खोज से इस बात का पता:

पहले, इस स्टैक ओवरफ़्लो post इंगित करता है कि आप एक पर मंझला साजिश stat_summary(fun.y="median", geom="point") जोड़ सकते हैं कि यहाँ आईरिस डेटा के साथ एक उदाहरण है एक बिंदु के रूप में वायलिन साजिश।

क्वार्टाइल के संबंध में, आपको here पर दिखाए गए अनुसार मज़ेदार तर्क के लिए अपना स्वयं का फ़ंक्शन लिखना होगा। उदा .:

median.quartile <- function(x){ 
    out <- quantile(x, probs = c(0.25,0.5,0.75)) 
    names(out) <- c("ymin","y","ymax") 
    return(out) 
} 

पूर्ण कोड इस प्रकार दिखाई देंगे:

require(ggplot2) 

median.quartile <- function(x){ 
    out <- quantile(x, probs = c(0.25,0.5,0.75)) 
    names(out) <- c("ymin","y","ymax") 
    return(out) 
} 

ggplot(iris,aes(Species,Sepal.Length))+ 
    geom_violin()+ 
    stat_summary(fun.y=median.quartile,geom='point') 
+0

धन्यवाद, आईरिस उदाहरण के लिए @spdickson। – jflournoy

+0

धन्यवाद, आपका समाधान ठीक काम कर रहा है! – Martombo

33

ऐसा करने का एक तरीका यह है कि इसके ऊपर एक पतली बॉक्स प्लॉट डालें।

require(ggplot2) 
ggplot(iris,aes(Species,Sepal.Length))+geom_violin()+geom_boxplot(width=.1) 

enter image description here

+2

शानदार - मुझे यह बहुत पसंद है। –

1

geom_violin एक तर्क draw_quantiles आप शामिल किए जाने quantiles निर्दिष्ट कर सकते हैं कि है। आईरिस पर 1, 2, और तीसरी क्वार्टाइल का उदाहरण यहां दिया गया है।

require(ggplot2) 
ggplot(iris, aes(Species, Sepal.Length)) + 
geom_violin(draw_quantiles = c(0.25, 0.5, 0.75))