প্লট.নেউ () -এ ত্রুটি: আরগিতে চিত্রের মার্জিন খুব বড়


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
আপনার আমাদের পুনরুত্পাদনযোগ্য উদাহরণ সরবরাহ করতে হবে যা আপনারা অসুস্থ হয়ে উঠছেন demonst stackoverflow.com/questions/12765668/...
রোমান Luštrik

আমি উপরের সমস্ত চেষ্টা করেছিলাম, এবং কিছুই কার্যকর হয়নি। তবে একবারে একবারে (অন্তত আমার মতো নবজাতকের জন্য) ম্যাট্রিক্স বা ডেটা.ফ্রেমে থাকা ডেটা এমন কোনও প্রকারে জোর করা যেতে পারে যা আপনি জানেন না। সেক্ষেত্রে আপনার ডেটা আগে "as.numeric" ব্যবহার করুন এটি নিশ্চিত হয়ে নিন যে এটি সমস্যা নয়।
@AAPAPPApapapa

উত্তর:


85

আমার সন্দেহ হয় যে সমস্যাটি হ'ল আপনার layout()কল দ্বারা তৈরি করা ছোট চিত্রের অঞ্চল 2 কেবলমাত্র ডিফল্ট মার্জিনকে ধারণ করতে পর্যাপ্ত পরিমাণে বড় নয়, প্লটটি ছেড়ে দিন।

লাইনটি সমস্যার কারণ হওয়ার আগে চেষ্টা করুন:

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

এই ত্রুটিটি কেবল রাস্তুডিওতে ঘটতে পারে কারণ আপনার "প্লট" ফলকটি সবেমাত্র খুব ছোট। আপনার "ফাইল, প্লট, প্যাকেজস, সহায়তা, দর্শক" জুম করার চেষ্টা করুন এবং দেখুন এটি সহায়তা করে কিনা!


8
এটি আমার সমস্যার সমাধান! আমি "প্লট" ইত্যাদি উইন্ডো সঙ্কুচিত করে "পরিবেশ" উইন্ডোটি প্রসারিত করেছি। আমাকে সবেমাত্র উইন্ডোটি প্রসারিত করতে হয়েছিল। ধন্যবাদ!
রক লি

সম্মত, এটি আমার আর স্টুডিওকেও প্রভাবিত করেছে এবং উইন্ডোটি প্রসারিত করতে সহায়তা করেছে।
কিংজ 27'15

কখনও কখনও পার্ট () ব্যবহারের কারণে আমি ঘটনাক্রমে অনেকগুলি প্যানগুলি দিয়ে শেষ করি। par(mfrow=c(1,1))আপনাকে একটি ফলকে পুনরায় সেট করতে পারে।
ম্যাট

1
আমি আরে নতুন হওয়ার কারণে এটি আমার পক্ষে খুব অদ্ভুত ত্রুটি ছিল।
আদর্শ

দুর্দান্ত, এটি আমার পক্ষেও কাজ করেছিল। যদিও এরকম অদ্ভুত ত্রুটি!
মোহাম্মদ

70

আপনি যদি আর স্টুডিওতে এই বার্তাটি পান তবে প্লট ট্যাবে 'ব্রুমস্টিক' চিত্র "সমস্ত প্লট সাফ করুন" ক্লিক করে প্লট () ব্যবহার করে আবার কাজ করতে পারে।

এখানে চিত্র বর্ণনা লিখুন


1
এটি সেরা উত্তর।
নিউবিডিডে

15
graphics.off()
কাঁচার

আমি এই উত্তরটি পছন্দ করি
ও.আরকা

এটি সত্যই সেরা উত্তর। ধন্যবাদ।
বাকী

24

এটি কখনও কখনও আরস্টুডিওতে ঘটে। এটি সমাধান করার জন্য আপনি একটি বাহ্যিক উইন্ডোতে প্লট করার চেষ্টা করতে পারেন (উইন্ডোজ-কেবল):

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

1
এটি একটি বৃহত্তর মনিটর কেনার চেয়ে ভাল উত্তর। এছাড়াও একটি x11 () কমান্ড রয়েছে যা লিনাক্সে কাজ করা উচিত।
রন জেনসেন - আমরা সকলেই মনিকা

1
এখন পর্যন্ত সবচেয়ে উপযুক্ত উত্তর ধন্যবাদ।
টিকিয়া

ম্যাকোএসএক্সের সমতুল্য?
TeYaP

Error in plot.new() : figure margins too largeওএলএস-সিউসুম আঁকতে যখন আমি আরস্টুডিওতে ত্রুটি পেয়েছি তখন আমি এই সমাধানটি চেষ্টা করেছি এবং এটি অলৌকিকভাবে কাজ করেছিল। জবলিগাদো অনেক ধন্যবাদ।
এরদোগান সিইভিভার

19

আমি আর স্টুডিওতে এই ত্রুটিটি পেয়েছি এবং ডান থেকে বাম দিকে ক্লিক করে এবং এর প্রান্তে টান দিয়ে সাইডবারটি আরও বড় করে ফিক্স করা হয়েছে।


2
এই ছিল বিজয়ী। কেন এটি এমনকি একটি জিনিস?
কলিন

2
এই সমাধান ব্যতীত অন্য কোনও সমাধান আমার পক্ষে কাজ করেনি।
zsad512

1
কীভাবে বা কেন জানি না, তবে এটিই ছিল আমার জন্য একমাত্র সমাধান worked
TheSciGuy

10

আপনার অবজেক্টের তালিকা বা ভেক্টর কিনা তা পরীক্ষা করে দেখুন। এটি করতে, টাইপ করুন is.list(yourobject)। যদি এটি সত্য হয় তবে এটির নামকরণের চেষ্টা করুন x<-unlist(yourobject)। এটি এটিকে কোনও ভেক্টরে পরিণত করবে যা আপনি চক্রান্ত করতে পারবেন।


এটি আমার পক্ষে হয়েছে (ব্যবহার png()/ dev.off()রিস্টুডিওতে)।
জানু

5

এখানে চিত্র বর্ণনা লিখুন

আপনি আরস্টুডিও ব্যবহার করলে কেবল এই অঞ্চলটি জুম করুন।


3

আমি আজ এই ত্রুটি খুঁজে পেয়েছি। প্রথমদিকে, আমি এটিকে .jpegকম প্রস্থ এবং উচ্চতা সহ একটি ফাইলে আউটপুট দেওয়ার চেষ্টা করছিলাম ।

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

পরে আমি প্রস্থ এবং উচ্চতা এটিকে বাড়িয়েছি:

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

ত্রুটিটি সেখানে ছিল না। :)

আপনি রেজোলিউশনের সাথে খেলতেও পারেন, রেজোলিউশন উচ্চ হলে আপনার আরও প্রস্থ এবং উচ্চতা প্রয়োজন।



2

আমি এই ত্রুটিটি কয়েক সপ্তাহ ধরে সংগ্রাম করেছি (আরস্টুডিও ব্যবহার করে)। আমি প্লটের উইন্ডোটি আরও বড় এবং ছোট সরানোর চেষ্টা করেছি, তবে এটি ধারাবাহিকভাবে সাহায্য করে না। আমি যখন অ্যাপ্লিকেশনটি আমার বড় মনিটরে সরিয়ে নিয়েছি (টেনে নিয়েছি), সমস্যাটি অদৃশ্য হয়ে গেল! আমি হতবাক হয়ে গিয়েছিলাম ... অনেক সময় নষ্ট হওয়া ... আমি জানতাম আমার কোডটি সঠিক ছিল ...


0

আরস্টুডিও প্লটস ক্যানভাস প্লটের প্রস্থ এবং উচ্চতা সীমাবদ্ধ করছে। তবে আপনি যদি রমার্কডাউন কোড অংশ থেকে আপনার প্লট তৈরি করেন তবে এটি ক্যানভাস ফিল্ডের সীমাবদ্ধতা ছাড়াই কাজ করে কারণ প্লট করার ক্ষেত্রটি কাগজের আকার অনুযায়ী সেট করা হয়।

এই ক্ষেত্রে:

    ```{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()

আপনি কখনও বৃহত্তর এমন কিছু প্লট না করে যা কোনও জায়গাতেই উপযুক্ত নয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.