2012-05-04 8 views
12

उदाहरण के लिए, अगर मैं अंक 1-5 के साथ एक साजिश आकर्षित और अंक 5-9 जोड़ना चाहते हैं, निम्नलिखित काम करेगा:क्या प्लॉट पहले ही खींचा गया है जब यलिम और एक्सलिम को बदलना संभव है?

> plot(c(1,2,3,4,5), ylim=c(0,10)) 
> points(c(5,6,7,8,9)) 

हालांकि, अगर मैं पहले से क्या नंबरों के लिए पता नहीं है -बे-जोड़ा अंक होंगे (वे 5-9 हो सकते हैं, 20-29 भी हो सकते हैं), मैं पहले से ही यलिम और एक्सलिम सेट नहीं कर सकता। मैं निम्नलिखित की तरह कुछ करने में सक्षम होना चाहता हूं (जो काम नहीं करता है):

> plot(c(1,2,3,4,5)) 
> points(c(5,6,7,8,9), ylim=c(0,10)) 

क्या ऐसा कुछ संभव है?

+2

शायद नहीं, जब तक कि आप 'playwith' पैकेज की तरह कुछ न करें। –

+0

ऐसा डर था। क्या आप इसे एक जवाब में डाल सकते हैं, इसलिए मैं इसे स्वीकार करता हूं? –

+1

मैं इंगित करता हूं कि नीचे दिया गया ggplot2 समाधान _technically_ ओपी के प्रश्न को पूरा नहीं करता है, इस अर्थ में कि आपको अभी भी परिवर्तन देखने के लिए ग्राफ़ _ से स्क्रैच_ को फिर से प्रस्तुत करना होगा। यह मूल ग्राफिक्स की स्थिति के समान है, जहां आपको अक्ष सीमाओं को बदलने के लिए शुरुआत से ग्राफ बनाना होगा। तो @ बेनबोल्कर का जवाब शायद सबसे सही है। – joran

उत्तर

6

(बस पूर्णता के लिए।)

यह आर बेस ग्राफिक्स में लगभग निश्चित रूप से असंभव है। अन्य उत्तरों बताते हैं कि यह ggplot में करने योग्य है। playwith पैकेज जैसे कुछ में संभव हो सकता है, हालांकि आसपास खेलने के एक छोटे से हिस्से ने मुझे ऐसा करने का कोई तरीका नहीं दिखाया है।

3

आप ggplot2 में अक्ष सीमा को बदल सकते हैं। उदाहरण के लिए,

require(ggplot2) 
data(mpg) 

g = ggplot(mpg, aes(cyl, cty)) + geom_point() + xlim(5, 8) 
g 
g + xlim(4,8) 

जैसा कि बेन बोल्कर ने मूल ग्राफिक्स में उल्लेख किया है, आप निश्चित रूप से अतिरिक्त पैकेज के बिना इसे नहीं कर सकते हैं।

3
ggplot2 साथ

आप अक्ष संशोधित कर सकते हैं:

df <-data.frame(age=c(10,10,20,20,25,25,25),veg=c(0,1,0,1,1,0,1),extra=c(10,10,20,20,25,25,90)) 
g=ggplot(data=df,aes(x=age,y=veg)) 
g=g+stat_summary(fun.y=mean,geom="point") 
g 

तो

a<-g+coord_cartesian(xlim=c(0,100)) 
a+geom_point(data=df,aes(x=extra,y=veg)) 
2

इस काफी अच्छा होगा? यह एक चर के रूप में ylim की ऊपरी सीमा व्यवहार करता है, लेकिन तकनीकी रूप से आप अंक जोड़ने से पहले ylim पता होगा:

my.data <- seq(0,5) 
my.points <- seq(5,9) 
plot(my.data, ylim=c(0,max(my.data,my.points))) 
points(my.points) 

तुम भी ylim उसी तरह की निचली सीमा का इलाज कर सकते हैं:

my.data <- seq(0,5) 
my.points <- seq(5,9) 
plot(my.data, ylim=c(min(my.data,my.points),max(my.data,my.points))) 
points(my.points)