प्लॉट.न्यू () में त्रुटि: आर में फिगर मार्जिन बहुत बड़ा है


111

मैं आर के लिए नया हूं, लेकिन मैंने छोटे डेटा सेट के साथ कई सहसंबंध प्लॉट किए हैं। हालांकि, जब मैं एक बड़े डेटासेट (2 जीबी +) की साजिश करने की कोशिश करता हूं, तो मैं प्लॉट का उत्पादन ठीक कर सकता हूं, लेकिन किंवदंती नहीं दिखती। कोई सलाह? या विकल्प?

library(gplots)
r.cor <- cor(r)
layout(matrix(c(1,1,1,1,1,1,1,1,2,2), 5, 2, byrow = TRUE))
par(oma=c(5,7,1,1))
cx <- rev(colorpanel(25,"yellow","black","blue"))
leg <- seq(min(r.cor,na.rm=T),max(r.cor,na.rm=T),length=10)
image(r.cor,main="Correlation plot Normal/Tumor data",axes=F,col=cx)
axis(1, at=seq(0,1,length=ncol(r.cor)), labels=dimnames(r.cor)[[2]], 
    cex.axis=0.9,las=2)
axis(2,at=seq(0,1,length=ncol(r.cor)), labels=dimnames(r.cor)[[2]],
     cex.axis=0.9,las=2)
image(as.matrix(leg),col=cx,axes=T)     

इसमें त्रुटि plot.new(): आंकड़ा बहुत बड़ा है

tmp <- round(leg,2)
axis(1,at=seq(0,1,length=length(leg)), labels=tmp,cex.axis=1)

1
आप हमें एक प्रतिलिपि प्रस्तुत करने योग्य उदाहरण के साथ प्रदान करना चाहिए जो आप कर रहे हैं। stackoverflow.com/questions/12765668/…
रोमन लुसट्रिक

मैंने उपरोक्त सभी की कोशिश की, और कुछ भी काम नहीं किया। हालाँकि, एक बार थोड़ी देर में (कम से कम मेरे जैसे नौसिखिया के लिए), मैट्रिक्स या डेटा.फ्रेम में डेटा को किसी ऐसे प्रकार में ज़ब्त किया जा सकता है जिसके बारे में आपको जानकारी नहीं थी। उस स्थिति में, यह सुनिश्चित करने के लिए कि यह समस्या नहीं है, अपने डेटा से पहले "as.numeric" का उपयोग करें।
pApaAPPApapapa

जवाबों:


85

मुझे संदेह है कि समस्या यह है कि आपके layout()कॉल द्वारा बनाया गया छोटा आंकड़ा क्षेत्र केवल डिफ़ॉल्ट मार्जिन को शामिल करने के लिए पर्याप्त रूप से बड़ा नहीं है, अकेले एक प्लॉट दें।

समस्या पैदा करने वाली रेखा से पहले प्रयास करें:

par(mar = rep(2, 4))

फिर दूसरी छवि को प्लॉट करें

image(as.matrix(leg),col=cx,axes=T)

आपको par()यह अधिकार प्राप्त करने के लिए मेरे द्वारा दिखाए जाने वाले कॉल पर हाशिये के आकार के साथ खेलने की आवश्यकता होगी । आपको वास्तविक डिवाइस का आकार बढ़ाने की भी आवश्यकता हो सकती है, जिस पर आप साजिश रच रहे हैं।

अंतिम टिप, par()उन्हें बदलने से पहले डिफॉल्ट को बचाएं , इसलिए अपनी मौजूदा par()कॉल को इसमें बदलें :

op <- par(oma=c(5,7,1,1))

तो साजिश रचने के अंत में

par(op)

आह, स्पष्टीकरण के लिए धन्यवाद। मैं इसके बजाय लेआउट (मैट्रिक्स ()) में हेरफेर कर रहा था। मदद की सराहना!
स्टीव ह्वांग

2
यह मेरे लिए सही संकेत था। मुझे छवि का आकार बढ़ाना था, या संकल्प को कम करना थाpng(filename="myfile.png", res=150, width = 1000, height = 1000)
vanao veneri

146

यह त्रुटि Rstudio में केवल इसलिए हो सकती है क्योंकि आपका "प्लॉट्स" फलक अभी मुश्किल से बहुत छोटा है। अपने "फाइल, प्लॉट, पैकेज, हेल्प, व्यूअर" को ज़ूम करके देखें और देखें कि क्या यह मदद करता है!


8
इससे मेरी समस्या हल हो गई! मैंने "पर्यावरण" विंडो का विस्तार किया था, "प्लॉट्स", आदि विंडो को सिकोड़ते हुए। मुझे बस खिड़की का विस्तार करना था। धन्यवाद!
रॉक ली

सहमत, इसने मेरे RStudio को भी प्रभावित किया, और बस खिड़की का विस्तार करने में मदद की।
किंग्ज़

कभी-कभी मैं बराबर () का उपयोग करने के कारण कई पैन के साथ गलती से समाप्त हो जाता हूं। par(mfrow=c(1,1))आपको एक फलक पर रीसेट कर सकता है।
मैट

1
यह मेरे लिए बहुत अजीब त्रुटि थी क्योंकि मैं आर से नया हूं। किसी भी अन्य भाषा / आईडीई के साथ पहले कभी कोई मुद्दा नहीं था जहां आईडीई लेआउट मेरे कोड को प्रभावित करेगा !!
आदर्श

बहुत बढ़िया, यह मेरे लिए भी काम कर गया। हालांकि ऐसी अजीब त्रुटि!
मोहम्मद

70

यदि आपको RStudio में यह संदेश मिलता है, तो प्लॉट्स टैब में 'ब्रूमस्टिक' का आंकड़ा "क्लियर ऑल प्लॉट्स" पर क्लिक करने और फिर से प्लॉट () करने की कोशिश हो सकती है।

यहां छवि विवरण दर्ज करें


1
यह सबसे अच्छा जवाब है।
NewbieDave 21

15
graphics.off()
कच्चे

मुझे यह उत्तर पसंद है
O.rka

यह वास्तव में सबसे अच्छा जवाब है। धन्यवाद।
merve bıçakçı

24

यह कभी-कभी RStudio में होता है। इसे हल करने के लिए आप बाहरी विंडो (Windows-only) पर प्लॉट करने का प्रयास कर सकते हैं:

windows() ## create window to plot your file
## ... your plotting code here ...
dev.off() 

1
यह एक बड़ा मॉनिटर खरीदने से बेहतर उत्तर है। एक x11 () कमांड भी है जो लिनक्स पर काम करना चाहिए।
रॉन जेन्सेन - हम सभी

1
अब तक का सबसे उपयुक्त उत्तर। धन्यवाद।
तेईका

MacOSX के लिए कोई समकक्ष?
तीये की

मैंने इस समाधान की कोशिश की जब मुझे Error in plot.new() : figure margins too largeओएलएस-सीयूएसयूएम को ड्राइंग करते समय आरस्टीडीओ में त्रुटि मिलती है, और यह चमत्कारिक रूप से काम करता है। बहुत धन्यवाद जॉबलीगाडो।
एर्दोगन CEVHER

19

आर स्टूडियो में मुझे यह त्रुटि मिली, और बस साइडबार को बड़ा करके क्लिक करके तय किया गया था और इसके किनारे को दाएं से बाएं तरफ खींचकर।


2
यह विजेता था। यह भी एक बात क्यों है?
कॉलिन

2
इस एक को छोड़कर किसी भी अन्य समाधान ने मेरे लिए काम नहीं किया।
zsad512

1
पता नहीं कैसे या क्यों, लेकिन यह भी एकमात्र समाधान था जो मेरे लिए काम करता था।
TheSciGuy

10

जांचें कि क्या आपकी वस्तु एक सूची या एक वेक्टर है। ऐसा करने के लिए, टाइप करें is.list(yourobject)। यदि यह सच है, तो इसका नाम बदलने का प्रयास करें x<-unlist(yourobject)। यह एक वेक्टर में बना देगा जिसे आप प्लॉट कर सकते हैं।


यह मेरे लिए यह किया (का उपयोग करते हुए png()/ dev.off()Rstudio में)।
पताह

5

यहां छवि विवरण दर्ज करें

यदि आप RStudio का उपयोग करते हैं तो बस इस क्षेत्र को ज़ूम करें।


3

मुझे आज यह त्रुटि मिली। प्रारंभ में, मैं इसे .jpegकम चौड़ाई और ऊंचाई वाली फ़ाइल में आउटपुट करने का प्रयास कर रहा था ।

jpeg("method1_test.jpg", width=900, height=900, res=40)

बाद में मैंने इसकी चौड़ाई और ऊँचाई बढ़ा दी:

jpeg("method1_test.jpg", width=1900, height=1900, res=40)

त्रुटि नहीं थी। :)

आप रिज़ॉल्यूशन के साथ भी खेल सकते हैं, यदि रिज़ॉल्यूशन अधिक है, तो आपको अधिक चौड़ाई और ऊँचाई चाहिए।


2

मुझे यह त्रुटि तब हुई जब मैं उच्च आयामी डेटा को प्लॉट करने की कोशिश कर रहा था। यदि आपके साथ ऐसा हो रहा है, तो बहुआयामी स्केलिंग का प्रयास करें: http://www.statmethods.net/advstats/ds.html


2

मैं हफ्तों (RStudio का उपयोग करके) इस त्रुटि से जूझता रहा। मैंने प्लॉट विंडो को बड़ा और छोटा करने की कोशिश की, लेकिन इससे लगातार मदद नहीं मिली। जब मैंने अपने बड़े मॉनीटर के लिए एप्लिकेशन को स्थानांतरित किया (खींचा), तो समस्या गायब हो गई! मैं दंग रह गया ... इतने घंटे बर्बाद ... मुझे पता था कि मेरा कोड सही था ...


0

RStudio प्लॉट्स कैनवास प्लॉट की चौड़ाई और ऊंचाइयों को सीमित कर रहा है। हालाँकि यदि आप अपना प्लॉट Rmarkdown कोड चंक से बनाते हैं , तो यह बिना कैनवास फील्ड सीमा के काम करता है क्योंकि पेपर आकार के अनुसार प्लॉटिंग एरिया सेट होता है।

उदाहरण के लिए:

    ```{r}
#inside of code chunk in Rmarkdown
        grid <- par(mfrow=c(4, 5))
        plot(faithful, main="Faithful eruptions")
        plot(large.islands, main="Islands", ylab="Area")
        ...
        par(grid)
    ```

0

मुझे आज वही त्रुटि मिली। मैंने "सभी भूखंडों को साफ़ करें" बटन की कोशिश की है, लेकिन यह मुझे वही त्रुटि दे रहा है। फिर इस ट्रिक ने मेरे लिए काम किया, प्लॉट क्षेत्र को खींचकर बढ़ाने का प्रयास करें। यह सुनिश्चित करने में आपकी मदद करेगा।


0

मैंने अभी सभी प्लॉट्स को क्लियर किया है, फिर से प्लॉट कमांड दें और यह मददगार था


1
एसओ में आपका स्वागत है। कृपया आप बता सकते हैं कि इसका उत्तर क्यों है।
माइक

0

यदि मार्जिन कम है, तो नए प्लॉटिंग डिवाइस के साथ शुरू करना हमेशा बेहतर होता है:

dev.new()
# plot()
# save your plot
dev.off()

जब तक आप कुछ बड़ा नहीं कर सकते, जिसे समायोजित नहीं किया जा सकता, तब तक आपको मार्जिन त्रुटि नहीं मिलेगी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.