2014-09-05 9 views
55

यदि आप ggplot में धुरी सीमा निर्दिष्ट करते हैं तो बाहरी बिंदु हटा दिए जाते हैं। यह अंक के लिए ठीक है, लेकिन हो सकता है कि आप निर्दिष्ट सीमा के साथ अंतर वाली रेखाएं प्लॉट करना चाहें, लेकिन ggplot's range या xlim/ylim विधियां इन्हें हटा देती हैं। आउटपुट डेटा को हटाए बिना प्लॉट अक्ष श्रेणी निर्दिष्ट करने का कोई और तरीका है?डेटा (सीमाओं के बाहर) को हटाए बिना ggplot2 अक्षों को सीमित करें: ज़ूम

उदा

require(ggplot2) 
d = data.frame(x=c(1,4,7,2,9,7), y=c(2,5,4,10,5,3), grp=c('a','a','b','b','c','c')) 
ggplot(d, aes(x, y, group=grp)) + geom_line() 
ggplot(d, aes(x, y, group=grp)) + geom_line() + scale_y_continuous(limits=c(0,7)) 
ggplot(d, aes(x, y, group=grp)) + geom_line() + ylim(0,7) 

उत्तर

90

हैडली पीपी 99 पर बताते हैं; उसकी ggplot2 book (1st edition), या पीपी 133 160 -। 161 यदि आप second edition

मुद्दा यह है कि जैसा कि आप कहते हैं कि limits पैमाने के अंदर या ylim कारणों डेटा सेट करने, दूर फेंक दिया के रूप में वे डेटा को बाधित कर रहे हैं है। एक वास्तविक ज़ूम के लिए (सभी डेटा रखें), आपको कार्टेशियन समन्वय प्रणाली के अंदर सीमा निर्धारित करने की आवश्यकता है। और अधिक देखने के लिए: http://docs.ggplot2.org/current/coord_cartesian.html

ggplot(d, aes(x, y, group=grp)) + geom_line() + 
    coord_cartesian(ylim=c(0, 7)) 

enter image description here

+1

क्या होगा अगर coord_cartesian एक विकल्प है क्योंकि मैं 'geom_boxplot' का उपयोग नहीं है? – Everettss

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

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