2010-06-01 19 views
44

में एक किंवदंती को स्थानांतरित या स्थानांतरित करने के लिए मैं साजिश के नीचे पौराणिक कथा के साथ एक ggplot2 साजिश बनाने की कोशिश कर रहा हूं।ggplot2

ggplot2 पुस्तक पी 112 पर कहती है "किंवदंतियों की स्थिति और औचित्य थीम सेटिंग legend.position द्वारा नियंत्रित होते हैं, और मान दाएं, बाएं, ऊपर, नीचे, कोई नहीं (कोई किंवदंती नहीं), या संख्यात्मक हो सकता है पद"।

निम्न कोड काम करता है (चूंकि "दाएं" यह डिफ़ॉल्ट है), और यह "कोई नहीं" के साथ किंवदंती स्थिति के रूप में भी काम करता है, लेकिन "बाएं", "शीर्ष", "नीचे", सभी "त्रुटि" में विफल grid.Call.graphics में ("L_setviewport", pvp, TRUE): गैर-परिमित स्थान और/या व्यूपोर्ट के लिए आकार "

library(ggplot2) 
(myDat <- data.frame(cbind(VarX=10:1, VarY=runif(10)), 
    Descrip=sample(LETTERS[1:3], 10, replace=TRUE))) 
qplot(VarX,VarY, data=myDat, shape=Descrip) + 
    opts(legend.position="right") 

क्या मैं गलत कर रहा हूँ? एक किंवदंती को दोबारा स्थापित करना अविश्वसनीय रूप से आम होना चाहिए, इसलिए मुझे लगता है कि यह मैं हूं।

उत्तर

39

संस्करणों में> 0.9.3 (जब opts पदावनत किया गया था)

theme(legend.position = "bottom") 

पुराने संस्करण:

दुर्भाग्य से यह ggplot2 में एक बग जो मैं वास्तव में वास्तव में इस गर्मी में ठीक करने की आशा है ।

अद्यतन:

opts(legend.position = "left") शामिल बग ggplot2 के नवीनतम संस्करण का उपयोग कर तय किया गया है। इसके अलावा, संस्करण 0.9.0 ने guide_legend और guide_colorbar की शुरुआत देखी जो पौराणिक कथाओं के भीतर वस्तुओं की उपस्थिति और स्थिति पर बहुत अधिक नियंत्रण प्रदान करता है। उदाहरण के लिए, योग्यता के लिए पंक्तियों और स्तंभों की संख्या निर्दिष्ट करने की क्षमता निर्दिष्ट करती है।

+0

नहीं इस 'theme_update साथ अब किया है (legend.position =" नीचे ") ' –

3

आप हमेशा पौराणिक कथाओं को मैन्युअल रूप से रख सकते हैं - लेकिन चूंकि लेबल अभी भी ढेर/लंबवत है, इसलिए यह बदसूरत दिखता है। मैं वास्तव में हेडली इस :-) ठीक करने के लिए

p <- qplot(VarX,VarY, data=myDat, shape=Descrip) + 
opts(legend.position=c(.5,0.9),plot.margin = unit(c(6,0,0,0), "lines")) 
+9

'opts()' अब बहिष्कृत है - इसके बजाय 'guide_legend()' का उपयोग करें। Http://docs.ggplot2.org/0.9.2.1/guide_legend.html विषय के साथ – Andrew

0

ggplot2 के नए संस्करण में समय पाता आशा है, आप + theme(legend.position='bottom') उपयोग कर सकते हैं।

qplot(VarX,VarY, data=myDat, shape=Descrip) + 
    theme(legend.position='bottom') 

enter image description here

अधिक किंवदंतियों अच्छाई के लिए Cookbook for R - Legends देखें।

किसी टिप्पणी के जवाब में, theme_update() किसी ggplot के बीच में डाला गया नहीं है (जैसे + theme_update(), केवल बाद के समय में। यह केवल विशिष्ट साजिश की बजाय सक्रिय थीम को संशोधित करता है। तो आप कर सकते हैं इस:।

theme_update(legend.position='bottom') 
qplot(VarX,VarY, data=myDat, shape=Descrip) 
के रूप में ऊपर परिणाम, अंतर किया जा रहा है कि इसके बाद के भूखंडों भी तल पर पौराणिक कथा के लागू हो जाएगी साथ साथ

+0

(किंवदंती।स्थिति = "नीचे") मेरी किंवदंती नीचे बाईं ओर दिखाई देती है जबकि आपके उदाहरण में यह मध्य में दिखाया गया है (जैसा कि मैंने सोचा था कि यह पिछले कुछ वर्षों में मेरे पिछले भूखंडों में है)। क्या आप जानते हैं कि इसके बारे में कुछ बदल गया है और इसे फिर से मध्य में कैसे प्राप्त किया जाए? – Tingolfin

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