2013-06-06 14 views
9

का उपयोग करते समय भरें और रंग किंवदंतियों को संयोजित करें मुझे किंवदंती लेबल में उप/सुपरस्क्रिप्ट का उपयोग करने की आवश्यकता है। हालांकि, अगर मैं संबंधित पैमाने के label पैरामीटर का उपयोग करता हूं, तो रंग और भरने के पैमाने को अब संयुक्त नहीं किया जाता है।अभिव्यक्ति लेबल

क्या किंवदंतियों में उप/सुपरस्क्रिप्ट का उपयोग करने के लिए इस या एक अलग तरीके को ठीक करने का कोई तरीका है?

DF <- data.frame(x=1:10,y=(1:10)^2, 
       ymax=(1:10)^2.2, 
       ymin=(1:10)^1.8, 
       fac=rep(c("a","b"),each=5)) 

library(ggplot2) 
p <- ggplot(DF,aes(x=x,y=y,ymin=ymin,ymax=ymax,colour=fac,fill=fac)) + 
    geom_line() + 
    geom_ribbon(alpha=0.5) 

print(p) 

enter image description here

p + scale_color_discrete(labels=c("a"=expression(a[{foo}]), 
            "b"=expression(b[{bar}]))) + 
    scale_fill_discrete(labels=c("a"=expression(a[{foo}]), 
            "b"=expression(b[{bar}]))) 

enter image description here

उत्तर

6

ऐसा नहीं है सुरुचिपूर्ण समाधान fill कथा दूर करने के लिए और फिर color= कथा के लिए guides() समारोह के भीतर override.aes= का उपयोग करें। इस किंवदंती के लिए हम अपना खुद का fill= मान सेट कर सकते हैं। केवल समस्या यह है कि आपको रंग के नाम जानना होगा। मुझे लगता है कि scale_color_manual() के साथ यह आसान होगा क्योंकि आप पहले से ही अपना रंग मान प्रदान करते हैं।

p + scale_color_discrete(labels=c("a"=expression(a[{foo}]), 
            "b"=expression(b[{bar}]))) + 
    scale_fill_discrete(guide="none")+ 
    guides(color=guide_legend(override.aes=list(fill=c("#F8766D","#00BFC4")))) 

enter image description here

+0

महान। आप 'n <- 2 का उपयोग कर सकते हैं; एचसीएल (एच = सीईसी (15, 375-360/एन, लंबाई = एन) %% 360, सी = 100, एल = 65) 'रंग प्राप्त करने के लिए [(स्रोत)] (http://osdir.com/ml /ggplot2/2011-08/msg00223.html)। – Roland

संबंधित मुद्दे