आर

2011-07-21 4 views
11

में धुरी लेबल ओवरलैपिंग से बचें, मैं लेबल्स के लिए बड़े फ़ॉन्ट आकार वाले ग्राफ में डेटा प्लॉट करना चाहता हूं।आर

x = c(0:10) 
y = sin(x) + 10 

plot (
    x, y, type="o", 
    xlab = "X values", 
    ylab = "Y values", 
    cex.axis = "2", 
    cex.lab = "2", 
    las = 1 
) 

दुर्भाग्यवश वाई-अक्ष पर संख्या वाई-अक्ष के लिए लेबल को ओवरलैप करती है। मैंने मार्च का उपयोग करने की कोशिश की, लेकिन यह काम नहीं किया (वैसे, मैं कैसे पता लगा सकता हूं कि साजिश कमांड में कौन से ग्राफिक पैरामीटर का सीधे इस्तेमाल किया जा सकता है और जिसे पैरा() - विधि के साथ सेट किया जाना है?)।

मैं उन लेबलों को ओवरलैप से कैसे बच सकता हूं?

आपकी मदद के लिए धन्यवाद।

स्वेन

+0

नोट: यदि आप अक्ष लेबल को स्थानांतरित करना चाहते हैं, तो इसे अलग से मुद्रित: http://stackoverflow.com/questions/5506046/how-do-i-put-more-space-between- अक्ष-लेबल-और-अक्ष-शीर्षक-इन-एन-आर-बॉक्सप्लॉट – BurninLeo

उत्तर

17

अक्ष लेबल को स्थानांतरित करने के लिए साजिश मार्जिन और par(mgp) बढ़ाने के लिए par(mar) का उपयोग करें।

par(mar = c(6.5, 6.5, 0.5, 0.5), mgp = c(5, 1, 0)) 
#Then call plot as before 

मदद पृष्ठ ?par यह बताते हैं जो मानकों plot में सीधे इस्तेमाल किया जा सकता है और जो par के माध्यम से बुलाया गया होना चाहिए।

कई मापदंडों केवल के लिए एक कॉल द्वारा निर्धारित किया जा सकता है 'सममूल्य()'

• ‘"ask"’, 

    • ‘"fig"’, ‘"fin"’, 

    • ‘"lheight"’, 

    • ‘"mai"’, ‘"mar"’, ‘"mex"’, ‘"mfcol"’, ‘"mfrow"’, ‘"mfg"’, 

    • ‘"new"’, 

    • ‘"oma"’, ‘"omd"’, ‘"omi"’, 

    • ‘"pin"’, ‘"plt"’, ‘"ps"’, ‘"pty"’, 

    • ‘"usr"’, 

    • ‘"xlog"’, ‘"ylog"’ 

The remaining parameters can also be set as arguments (often via 
‘...’) to high-level plot functions such as ‘plot.default’, 
‘plot.window’, ‘points’, ‘lines’, ‘abline’, ‘axis’, ‘title’, 
‘text’, ‘mtext’, ‘segments’, ‘symbols’, ‘arrows’, ‘polygon’, 
‘rect’, ‘box’, ‘contour’, ‘filled.contour’ and ‘image’. Such 
settings will be active during the execution of the function, 
only. However, see the comments on ‘bg’ and ‘cex’, which may be 
taken as _arguments_ to certain plot functions rather than as 
graphical parameters. 
+0

जब मैं एमजीपी का उपयोग करता हूं तो वाई-लेबल के साथ-साथ एक्स-लेबल स्थानांतरित हो जाते हैं। क्या यह संभव है कि केवल वाई-लेबल को स्थानांतरित करें? क्या कोई अच्छा ट्यूटोरियल है जो उन बुनियादी चीजों को सिखाता है? मैं हमेशा मदद में खो जाता हूं, ... :-( –

+2

यदि आपको सामान्य दृष्टिकोण की तुलना में डिफ़ॉल्ट प्लेसमेंट पसंद नहीं है तो 'ylab =" "' 'और 'अक्ष (..., रेखा = ) का उपयोग करें। अक्ष –

+0

@DWin: मैं आपके सुझाव का प्रयास करूंगा। अब मैंने पहले एक अक्ष के लिए'par (mgp) शीर्षक, फिर'par (mgp) 'सेट किया है, और bext अक्ष के लिए' शीर्षक() 'सेट किया है। –

2

par का उपयोग करें और ylab में एक नई पंक्ति जोड़ने के लिए, भले ही यह धारणात्मक भयानक है त्वरित और गंदी तरीका होगा। के रूप में वे ... arugments प्राप्त होगा

x = 0:10 
y = sin(x) + 10 

par(mar=c(5,7,4,2)) 
plot (
    x, y, type="o", 
    xlab = "X values", 
    ylab = "Y values\n", 
    cex.axis = "2", 
    cex.lab = "2", 
    las = 1 
) 

के संबंध में जो आप सीधे plot में सेट कर सकते हैं पैरामीटर ?plot.default और ?plot.xy पर एक नजर है। localWindow और localBox जैसे अनियंत्रित कार्यों (जहां तक ​​मुझे मिल सकता है) के लिए कुछ कॉल भी हैं, लेकिन मुझे नहीं पता कि उनके साथ क्या होता है। मुझे लगता है कि वे सिर्फ अनदेखा कर रहे हैं।

0

आप शीर्षक() फ़ंक्शन में एमजीपी पैरामीटर डाल पुनर्स्थापित करने के लिए होने से बचने के लिए कर सकते हैं बाद में आपके डिफ़ॉल्ट। इस तरह पैरामीटर केवल फ़ंक्शन द्वारा जोड़े गए लेबल (नों) पर कार्य करता है। इस तरह:

plot (
x, y, type="o", 
xlab = "",   #Don't include xlab in main plot 
ylab = "Y values", 
cex.axis = "2", 
cex.lab = "2", 
las = 1 
) 
title(xlab="X values" 
,mgp=c(6,1,0)) #Set the distance of title from plot to 6 (default is 3).