2011-09-01 5 views
24

की पहली साजिश में स्थिति किंवदंती मैं एक पहलू की पहली साजिश के अंदर साजिश के अंदर अपनी साजिश कथा को रखना चाहता हूं। यहाँपहलू

plot with legend on outside

और मोटे तौर पर है मैं इसे कैसे देखने के लिए चाहते हैं:

df=data.frame(
x=runif(10), 
y=runif(10), 
facet=rep(c("a","b"),5), 
color=rep(c("red","blue"),5)) 

ggplot(data=df,aes(x=x,y=y,color=color))+ 
geom_point()+ 
facet_wrap(~facet,ncol=1) 

यहाँ जिसके परिणामस्वरूप साजिश है:

plot with legend inside

यहाँ कुछ उदाहरण कोड है

किसी भी हेल ​​के लिए धन्यवाद पी आप प्रदान कर सकते हैं!

उत्तर

22

आप कथा पृष्ठभूमि आंशिक रूप से पारदर्शी चाहते हैं, माना आपके साजिश p

p + opts(
    legend.position = c(0.9, 0.6), # c(0,0) bottom left, c(1,1) top-right. 
    legend.background = theme_rect(fill = "white", colour = NA) 
) 

के रूप में सहेजा जाता है, के लिए, उदाहरण के लिए fill, "#ffffffaa" बदल जाते हैं।

+0

धन्यवाद रिची! यह मेरे उदाहरण साजिश पर काम करता है, लेकिन किसी कारण से जब मैं कोड की उन पंक्तियों को किसी अन्य साजिश में जोड़ता हूं, तो किंवदंती गायब हो जाती है। कोई विचार क्यों हो सकता है? मैंने ओपेट कोड को मूल पोस्ट – jslefche

+0

में रखा है क्या अन्य प्लॉट एक फ़ाइल प्रकार में सहेजा गया था जो पारदर्शिता (शायद एक gif) का समर्थन नहीं करता था? –

+0

या आपने 'legend.position' को बदल दिया ताकि वह साजिश के किनारे चले गए? –

8

या, अब, @Richie कपास के जवाब पर निर्माण के बाद से opts ggplot2 में पदावनत किया गया है (अब भी यह सोचते हैं अपने भूखंड पी के रूप में परिभाषित किया गया है)

p + theme(legend.position = c(0.9, 0.6) 
      ,legend.background = element_rect(fill = "white", colour = NA))