web-dev-qa-db-ja.com

plot.new()のエラー:RではFigureの余白が大きすぎます

私はRに慣れていませんが、より小さなデータセットで多数の相関プロットを作成しました。しかし、大きなデータセット(2 GB +)をプロットしようとすると、プロットを問題なく作成できますが、凡例は表示されません。何かアドバイス?それとも代替案?

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)
102
Steve Hwang

私は、あなたのlayout()呼び出しで作成された小さい数字の領域2が、プロットだけではなく、デフォルトのマージンだけを含むのに十分な大きさではないことが問題であると思います。

問題を引き起こしている行の前に試してください。

par(mar = rep(2, 4))

それから2番目の画像をプロットする

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

これを正しく行うには、私が示すpar()呼び出しの余白のサイズを試してみる必要があります。プロットしようとしている実際のデバイスのサイズを大きくする必要があるかもしれません。

最後のヒントは、変更する前にpar()のデフォルト値を保存してから、既存のpar()呼び出しを次のように変更します。

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

それから作図の最後にdo

par(op)
74
Gavin Simpson

このエラーは、単に「プロット」ペインが小さすぎるためにRstudioで発生する可能性があります。あなたの「ファイル、プロット、パッケージ、ヘルプ、ビューア」をズームして、それが役立つかどうか確かめてください!

135
Steve Pitchers

このメッセージがRStudioで表示される場合は、プロットタブの「すべてのプロットを消去」をクリックして、もう一度plot()を実行してください。

enter image description here

60
Justas

R Studioでこのエラーが発生しましたが、Edgeを右から左にクリックアンドドラッグしてサイドバーを大きくすることで簡単に修正できました。

18
Janac Meena

これはRStudioで時々起こります。これを解決するために、外部ウィンドウにプロットすることを試みることができます(Windowsのみ)。

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

オブジェクトがリストかベクトルかを確認してください。これを行うには、is.list(yourobject)と入力します。これが当てはまる場合は、x<-unlist(yourobject)という名前に変更してみてください。これでプロットできるベクトルになります。

9
Gina-Maria

enter image description here

RStudioを使用している場合は、この部分をズームしてください。

5
vkalit

高次元データをプロットしようとしたときにこのエラーが発生しました。それがあなたと何が起こっているのであれば、多次元スケーリングを試してみてください。 http://www.statmethods.net/advstats/mds.html

2
Olga Mu

私は(RStudioを使って)このエラーに何週間も苦労しました。プロットウィンドウを大きくしたり小さくしたりしてみましたが、それは一貫して助けにはなりませんでした。私がもっと大きいモニタにアプリケーションを移動(ドラッグ)すると、問題は解決しました。私は驚きました...非常に多くの時間を無駄にしました...私は自分のコードが正しいことを知っていました...

2
Liz

私は今日このエラーを見つけました。最初は、幅と高さが低い.jpegファイルに出力しようとしていました。

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

後で幅と高さを次のように増やしました。

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

エラーはありませんでした。 :)

解像度が高い場合は、より多くの幅と高さが必要です。

0
jaikamal

今日も同じエラーを見つけました。 [プロットをすべてクリア]ボタンを試しましたが、同じエラーが表示されました。それからこのトリックは私のために働きましたドラッグすることによってプロット領域を広げようとしてください。それは確実にあなたを助けるでしょう。

0
Dhruv Panchal

[すべてのプロットをクリア]を使用してから、再度プロットコマンドを入力しましたが、役に立ちました。

0
Nirmal Kumar

RStudio Plotsキャンバスは、プロットの幅と高さを制限しています。ただし、Rmarkdown codeチャンクからプロットを作成した場合は、用紙サイズに応じてプロット領域が設定されるため、キャンバスフィールドの制限なしで機能します。

例えば:

    ```{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
Suat Atan PhD