में मार्जिन का स्वचालित समायोजन मुझे क्षैतिज समूहबद्ध बार चार्ट की एक श्रृंखला का उत्पादन करने की आवश्यकता है। बारप्लॉट फ़ंक्शन स्वचालित रूप से साजिश के मार्जिन को समायोजित नहीं करता है, इसलिए टेक्स्ट काट दिया जाता है।क्षैतिज बार चार्ट
graphics.off() # close graphics windows
test <- matrix(c(55,65,30, 40,70,55,75,6,49,45,34,20),
nrow =3 ,
ncol=4,
byrow=TRUE,
dimnames = list(c("Subgroup 1", "Subgroup 2", "Subgroup 3"),
c(
"Category 1 Long text",
"Category 2 very Long text",
"Category 3 short text",
"Category 4 very short text"
)))
barplot(test,
las=2,
beside = TRUE,
legend=T,
horiz=T)
मैं स्वचालित रूप से सही करने के लिए आगे साजिश चले जाने का विकल्प नहीं मिल रहा है, जिस तरह से आर dotchart समारोह यह करता है ((एसएएस में barchart प्रक्रिया मार्जिन समायोजित कर देता है स्वतः ही)। जाहिर है, मैं हमेशा हाशिए मैन्युअल बराबर समारोह का उपयोग कर समायोजित कर सकते हैं।
par(mar=c(5.1, 13 ,4.1 ,2.1))
सही
करने के लिए साजिश चले जाएँगे
क्या साजिश को दाईं ओर ले जाने का कोई विकल्प है (यानी। मार्जिन समायोजित करें) पाठ की लंबाई के आधार पर स्वचालित रूप से?
2 संबंधित appproaches के बारे में सोच सकते हैं कि यह प्रोग्राम के रूप में करने के लिए: 1) सबसे लंबे समय तक पाठ स्ट्रिंग की लंबाई की गणना करें और उसके अनुसार बाईं मार्जिन समायोजित 2) डेटा के लिए एक dotchart साजिश बनाएँ, किसी भी तरह मार्जिन और उपयोग पर कब्जा बार चार्ट में एक ही मार्जिन।
क्या ऐसा करने का कोई आसान तरीका है? धन्यवाद!
धन्यवाद! मैंने आपके कोड को विभिन्न टेक्स्ट स्ट्रिंग के साथ करने की कोशिश की, मार्जिन ठीक काम करते हैं। आप 1.8 के साथ कैसे आए? –
@ मैक्स चेर्नी - नचर पर कुछ बुनियादी अंकगणित: मार्जिन अनुपात और कुछ परीक्षण और त्रुटि। मैं वादा नहीं कर सकता कि यह विभिन्न फ़ॉन्ट आकार/शैलियों के अनुकूल हो जाएगा लेकिन गणनाओं को आप आसानी से समायोजित कर सकते हैं जैसा कि आप देख सकते हैं। – thelatemail
@thelatemail - मुझे आश्चर्य है कि ऊपर दिया गया समाधान खाता विस्तार कारकों में आता है, कहें कि क्या मैं डिफ़ॉल्ट के बजाय cex.lab = 2 सेट करता हूं। धन्यवाद! – Alex