2011-09-30 13 views
9

मैं geom_text का उपयोग gglot2 में भूखंडों को एनोटेट करने के लिए कर रहा हूं और मैं पूर्ण के बजाय सापेक्ष स्थिति का उपयोग करना चाहता हूं। यही है, मैं x12 y अक्ष सीमाओं के बावजूद (0.5, 0.5) की स्थिति को मृत केंद्र के रूप में रखना चाहता हूं। क्या यह संभव है?ggplot2 में geom_text की सापेक्ष स्थिति?

वैकल्पिक रूप से मैं निश्चित रूप से एक रिश्तेदार की स्थिति एक पूर्ण एक के लिए अगर मैं x और y सीमा था परिणत कर सकते हैं। क्या उन्हें साजिश से निकालना संभव है?

उत्तर

5

यदि आप अपनी साजिश में डेटा की सीमा को जानते हैं, तो आप ggplot को वास्तविक रूप से 0.05 के एक योजक विस्तार कारक का उपयोग करके "सत्य" x और y सीमाओं की गणना कर सकते हैं, ताकि ग्राफ का विस्तार विस्तारित हो सके वास्तविक डेटा मानों से थोड़ा सा।

expand = c(mult, add) का उपयोग करके स्केल निर्दिष्ट करते समय आप निर्दिष्ट और गुणात्मक और योजक विस्तार कारक निर्दिष्ट कर सकते हैं जहां mult गुणात्मक कारक है और इसी तरह। तो डिफ़ॉल्ट सेटिंग expand = c(0,0.05) है।

+0

हां सही अब मैं डेटा श्रृंखला के साथ लंबे समय तक जा रहा हूँ। हालांकि मुझे विस्तार कारक निर्दिष्ट करने के बारे में पता नहीं था। बहुत धन्यवाद। – c00kiemonster

+3

मुझे यह नहीं मिला कि यह कैसे काम करता है। मुझे उस समस्या का सामना करना पड़ रहा है, क्या आप थोड़ा सा स्पष्टीकरण बढ़ा सकते हैं, शायद एक साधारण उदाहरण के साथ? – Eduardo

1

हाँ, यह एक ggplot2-भूखंड से x और y सीमा को निकालने के लिए संभव है। इस समारोह एक्स रिटर्न और y एक ggplot2 भूखंड वस्तु के केंद्र के समन्वय:

center.position <- function(plot) { 
xpos <- (ggplot_build(plot)$panel$ranges[[1]]$x.range[2]-ggplot_build(plot)$panel$ranges[[1]]$x.range[1])/2+ggplot_build(plot)$panel$ranges[[1]]$x.range[1] 
ypos <- (ggplot_build(plot)$panel$ranges[[1]]$y.range[2]-ggplot_build(plot)$panel$ranges[[1]]$y.range[1])/2+ggplot_build(plot)$panel$ranges[[1]]$y.range[1] 
return(data.frame(x=xpos,y=ypos)) 
} 

अपने एक्स डाटा POSIXct प्रारूप में है, तो आप अभी भी इसे बदलने के लिए है:

center.coords <- center.position(myplot) 
myplot <- myplot + annotate("text",x=as.POSIXct(center.coords$x,origin="1970-01-01"), y=center.coords$y, label="X") 
+1

'ggplot_build (plot) 'की संरचना, वैसे भी बदल गई है। 2.1.1 में यह 'ggplot_build (plot) $ लेआउट $ panel_ranges [[1]] $ x.range [2] 'जैसा कुछ है। –

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