2012-06-03 29 views
6

मेरे समस्या आर में एक प्रकाशन मैं भूखंड समारोह का इस्तेमाल किया है इस प्रकार की तरह के लिए एक ग्राफ के निर्माण से संबंधित है:आर साजिश, एक्स अक्ष और y- अक्ष को छू

plot(x=data$SL, y=data$BD, xlab = "SL (mm)", ylab = "BD (mm)", pch=data$pch) 

SL 51.7 से 73.7 के बीच है और बीडी 13.5 से 20.4 तक। दुर्भाग्य से मुझे अभी तक छवियों को पोस्ट करने की अनुमति नहीं है।

हालांकि, बॉक्स से छुटकारा पाने के लिए मैं "अक्ष = एफ" का उपयोग करना चाहता हूं। समस्या अब अक्ष समारोह पर नियंत्रण की कमी है। मैं प्रयोग किया है:

axis(side=1, lwd=3, xpd=TRUE, at=c(min(data$SL):max(data$SL))) 
axis(side=2, lwd=3, xpd=TRUE, at=c(min(data$BD):max(data$BD))) 

समस्या यह है कि मैं y- और x- अक्ष बॉक्स के साथ साजिश में के रूप में एक ही बिंदु पर एक साथ आने के लिए प्राप्त करने का प्रबंधन नहीं कर सकते हैं। X- और y-axis को एक-दूसरे को छूने दें कैसे?

उत्तर

3

सबसे अधिक संभावना xaxs = "i" और yaxs = "i" आपको वांछित व्यवहार प्राप्त करने में मदद करेगा।

plot(c(1,2,3),c(2,4,6),axes=F,xaxs = "i",yaxs="i",xlim=c(0,3),ylim=c(0,6)) 
axis(side=1, lwd=3, xpd=TRUE, at=0:3) 
axis(side=2, lwd=3, xpd=TRUE, at=seq(0,6,2)) 
5

बॉक्स से केवल बाईं और नीचे भागों आकर्षित करने के लिए box(bty='L') की कोशिश करो। आप लाइनों को आकर्षित करने के लिए स्थानों को खोजने के लिए lines, segments, याऔर grconvertX और grconvertY फ़ंक्शंस का उपयोग करके लाइनों को स्वयं भी खींच सकते हैं।

+1

बिल्कुल सही, 'बीटी =" एल "' '' प्लॉट() 'मेरे लिए काम किया। – thomasfedb

1

मेरा सुझाव है कि आप प्रक्रिया आप उल्लिखित निर्देशों का पालन करें और फिर उपयोग करें:

box(which = "plot", bty = "l")

जैसे:

plot.new() 
plot.window(xlim = c(1, 18), ylim = c(2, 20)) 
points(1:18, 2:19, pch = 1, col = "#FF7F24", cex = 1.2) 
lines(1:18, 2:19, col = "#FF7F24", lwd = 2) 
axis(side  = 1, 
    lwd  = 0, 
    lwd.ticks = 1, 
    at  = 1:18, 
    cex.axis = 0.9) 
title(main = "Plot", 
     ylab = "Y-Axis") 
legend("top", 
     legend = c("Legend"), 
     col = c("#FF7F24"), 
     text.col = c("#FF7F24"), 
     pch = 1, 
     bty = "n", 
     cex = 1.2) 
axis(side  = 2, 
    lwd  = 0, 
    lwd.ticks = 1) 
box(which = "plot", bty = "l") 

आप विकल्पों lwd = 0 और lwd.ticks = 1 अपने अलग axis() कॉल करने के लिए पास करना चाहिए अपने अक्ष के कुछ हिस्सों को अपने धुरी के अन्य हिस्सों की तुलना में फैटर दिखाई देने के लिए रोकने के लिए क्योंकि कुछ आपके कॉल द्वारा box() पर ओवरलेड हो जाते हैं और कुछ एन OT।

अंत में box() का उपयोग करने का समाधान है, मुझे लगता है कि इसमें अधिक सामान्य है जब आप इसका उपयोग कर सकते हैं। आप अपने plot.default या plot.window कॉल में bty = "l" पास नहीं कर सकते या नहीं चाहते हैं।

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