ggplot

2012-03-26 21 views
9

में एक परत किंवदंती को हटाकर एक और ggplot किंवदंती सवाल!ggplot

मैं प्रपत्र

test <- data.frame(
    cond = factor(rep(c("A", "B"), each=200)), 
    value = c(rnorm(200), rnorm(200, mean=0.8)) 
) 

तो दो समूहों और कुछ मूल्यों की एक डाटासेट है और मैं घनत्व प्लॉट करने के लिए चाहते हैं।

test.cdf <- ddply(test, .(cond), summarise, value.mean=mean(value)) 

फिर ggplot कॉल में: मैं भी एक लाइन साजिश करने के लिए प्रत्येक समूह के लिए मतलब यह दर्शाता है जोड़ने के लिए तो मैं चाहता हूँ

ggplot(test, aes(value, fill=cond)) + 
    geom_density(alpha=0.5) + 
    labs(x='Energy', y='Density', fill='Group') + 
    opts(
    panel.background=theme_blank(), 
    panel.grid.major=theme_blank(), 
    panel.grid.minor=theme_blank(), 
    panel.border=theme_blank(), 
    axis.line=theme_segment() 
) + 
    geom_vline(data=test.cdf, aes(xintercept=value.mean, colour=cond), 
    linetype='dashed', size=1) 

आप उपरोक्त कोड को चलाने के हैं, तो आप एक पौराणिक कथा का संकेत मिलता है प्रत्येक समूह, लेकिन एक औसत सूचक vline के लिए भी एक। मेरा सवाल यह है कि मैं geom_vline() के लिए किंवदंती से कैसे छुटकारा पा सकता हूं?

+1

आपने भरने के साथ-साथ एक रंग के लिए 'cond' मैप किया है। इन मैपिंग में से किसी एक को हटाने से समस्या हल होनी चाहिए। – Andrie

+0

क्या आपके लिए मेरे किसी भी उपयोग का जवाब है? –

उत्तर

15

ggplot2 के संस्करण के आधार पर आप इस समस्या का उपयोग कर रहे हैं।

enter image description here

जो vline के लिए कथा शामिल नहीं है: R2.14.1 पर 0.9.0 बनाम ggplot2 का उपयोग करते हुए मैं इस ग्राफ मिलता है।

ggplot(test, aes(value, fill=cond)) + 
    geom_density(alpha=0.5) + 
    labs(x='Energy', y='Density', fill='Group') + 
    opts(
    panel.background=theme_blank(), 
    panel.grid.major=theme_blank(), 
    panel.grid.minor=theme_blank(), 
    panel.border=theme_blank(), 
    axis.line=theme_segment() 
) + 
    geom_vline(data=test.cdf, aes(xintercept=value.mean, colour=cond), 
    linetype='dashed', size=1, show_guide = TRUE) 

enter image description here

जो आपकी समस्या reproduces: ggplot2 के इस संस्करण में आप कथा show_guide का उपयोग कर की घटना ठीक कर सकते हैं। डिफ़ॉल्ट, show_guide = FALSE। पुराने संस्करणों में, आप पौराणिक कथाओं को छोड़ने के लिए legend = FALSEgeom_vline जोड़ सकते हैं। legend = FALSE जोड़ा जा रहा है अभी भी अभी भी काम करता है वर्तमान संस्करण में काम करता है, लेकिन यह एक चेतावनी फेंकता है:

Warning message: 
In get(x, envir = this, inherits = inh)(this, ...) : 
    "legend" argument in geom_XXX and stat_XXX is deprecated. Use show_guide = TRUE or show_guide = FALSE for display or suppress the guide display. 

मैं ggplot2 उन्नयन की सिफारिश करेंगे।

+0

धन्यवाद @ पॉल ... ggplot को अपग्रेड करने से 'show_guide' ध्वज सक्षम होता है जो मैं चाहता हूं। चीयर्स। – Hassantm

+1

ggplot 2.0.0 के रूप में: 'show_guide' को बहिष्कृत कर दिया गया है। कृपया इसके बजाय 'show.legend' का उपयोग करें। –