ggplot

2015-09-09 22 views
5

में मैन्युअल किंवदंती जोड़ना मैंने पहले इसी तरह के प्रश्नों को देखा है और (मुझे लगता है) ने उन सभी चीजों को किया है जिनकी सिफारिश की गई है। मैं अभी भी आउटपुट प्राप्त नहीं कर रहा हूं।ggplot

मेरे पास वितरण का एक गुच्छा है, जिसे मैं पहचाने गए ग्राफ में प्रदर्शित कर रहा हूं। फिर मैं उनके माध्यम से लंबवत रेखाएं खींचता हूं, जो विभिन्न हस्तक्षेपों का प्रतिनिधित्व करते हैं।

मैं एक किंवदंती प्रदर्शित करने की कोशिश कर रहा हूं जिसमें वितरण के भरने के रंग और साथ ही उन अतिरिक्त रेखाओं के रेखा रंग शामिल हैं। जहां तक ​​मैं कह सकता हूं, मैं सबकुछ सही कर रहा हूं (aes() के भीतर रंग कमांड को सेट करना, scale_colour_manual() का उपयोग करके पौराणिक कथाओं को परिभाषित करने के लिए आदि)। मैं अभी भी भरने वाले रंगों के लिए किंवदंती प्राप्त कर रहा हूं।

यहाँ मेरी कोड है:

ggplot(modCosts, aes(x=cost)) + geom_density(aes(fill=group)) + theme_bw() + 
    facet_wrap(~ country, scales="free") + scale_x_continuous(label = dollar) + 
    scale_fill_brewer(palette = "RdGy", name = "Income group", labels = c("HIC" = "High income", "UMIC" = "Upper-middle income", "LIC" = "Low income")) + 
    labs(y = "Density", x = "Cost", title = "Medical costs of surgery\nActual vs. modeled") + 
    geom_vline(data = surgCosts, aes(xintercept = CS.tert.lo, color = "red4")) + 
    geom_vline(data = surgCosts, aes(xintercept = CS.tert.hi, color = "red4")) + 
    geom_vline(data = surgCosts, aes(xintercept = CS.prim.lo, color = "red4"), lty = "dashed") + 
    geom_vline(data = surgCosts, aes(xintercept = CS.prim.hi, color = "red4"), lty = "dashed") + 
    geom_vline(data = surgCosts, aes(xintercept = Lap.tert.lo, color = "deepskyblue")) + 
    geom_vline(data = surgCosts, aes(xintercept = Lap.tert.hi, color = "deepskyblue")) + 
    geom_vline(data = surgCosts, aes(xintercept = Lap.prim.lo, color = "deepskyblue"), lty = "dashed") + 
    geom_vline(data = surgCosts, aes(xintercept = Lap.prim.hi, color = "deepskyblue"), lty = "dashed") + 
    geom_vline(data = surgCosts, aes(xintercept = Fx.tert.lo, color = "yellowgreen")) + 
    geom_vline(data = surgCosts, aes(xintercept = Fx.tert.hi, color = "yellowgreen")) + 
    scale_color_manual(name = "Reported cost", values = c("red4" = "red4", "deepskyblue" = "deepskyblue", "yellowgreen" = "yellowgreen"), 
         labels = c("Int1", "Int2", "Int3")) + 
    theme(axis.ticks = element_blank(), axis.text.y = element_blank(), legend.position = "right") 

और यहाँ उत्पादन मैं हो रही है: enter image description here

किसी भी मदद की बहुत सराहना की जाएगी!

+0

यदि आप अपने डेटा सेट प्रदान करते हैं, अधिमानतः उपयोग करते हैं, उदाहरण के लिए, 'dput (modCosts)' और 'dput (surgCosts) '। यह बहुत आसान होगा। – jlhoward

+2

'ge__ide (...) 'के लिए' show_guide = ... 'तर्क है जो' गलत 'के लिए डिफ़ॉल्ट है। – jlhoward

+1

मैं उन सभी परतों को एक ही डेटा फ्रेम का उपयोग करके और रंग सौंदर्यशास्त्र का मानचित्रण करके केवल एक ही geom_vline में ध्वस्त करने की अनुशंसा करता हूं। – joran

उत्तर

3

geom_vline(...) (और _hline और _abline) के लिए एक show_guide=... तर्क जो FALSE को चूक नहीं है। जाहिर है कि विचार यह था कि ज्यादातर समय आप लाइन रंगों को एक किंवदंती में दिखाना नहीं चाहते हैं। यहां एक उदाहरण दिया गया है।

ggp +scale_color_identity("Line.Color", labels=paste0("Int",1:3), guide="legend") 

जो ऊपर समान साजिश का उत्पादन:

df <- mtcars 
library(ggplot2) 
ggp <- ggplot(df, aes(x=wt, y=mpg, fill=factor(cyl))) + 
    geom_point(shape=21, size=5)+ 
    geom_vline(data=data.frame(x=3),aes(xintercept=x, color="red"), show_guide=TRUE)+ 
    geom_vline(data=data.frame(x=4),aes(xintercept=x, color="green"), show_guide=TRUE)+ 
    geom_vline(data=data.frame(x=5),aes(xintercept=x, color="blue"), show_guide=TRUE) 

ggp +scale_color_manual("Line.Color", values=c(red="red",green="green",blue="blue"), 
        labels=paste0("Int",1:3)) 

BTW पैमाने यदि आप रंग नाम का उपयोग पर जोर देते हैं निर्दिष्ट करने के लिए एक बेहतर तरीका यह है।

+0

'show_guide' को इसके बजाय' show.legend' कहा जाता है –