1. ホーム
  2. r

[解決済み】.External.graphics Rでエラーが発生しました。

2022-02-18 09:26:46

質問

48列×32行の行列からヒートマップを作成するために、以下の関数を使用していました。

heatmap.2(all.data,Rowv = FALSE, Colv = FALSE, trace="none",main="All data",col=colorRampPalette(c("green","yellow","red")))

デンドグラムを削除したため、いくつかの警告が表示されましたが、それでも私が欲しかったヒートマップとカラーキーが表示されました。

Error in plot.new() : figure margins too large
In addition: Warning messages:
1: In heatmap.2(all.data, Rowv = FALSE, Colv = FALSE, trace = "none",  :
  Discrepancy: Rowv is FALSE, while dendrogram is `both'. Omitting row dendogram.
2: In heatmap.2(all.data, Rowv = FALSE, Colv = FALSE, trace = "none",  :
  Discrepancy: Colv is FALSE, while dendrogram is `none'. Omitting column dendogram.

余白を全辺1にしてみると

par(mar=c(1,1,1,1))
heatmap.2(all.data,Rowv = FALSE, Colv = FALSE, trace="none",main="All data",col=colorRampPalette(c("green","yellow","red")))

で、もう一度やってみると、ヒートマップが作成されず、こんなエラーが出ます。

Error in .External.graphics(C_layout, num.rows, num.cols, mat, as.integer(num.figures),  : 
  invalid graphics state
In addition: Warning messages:
1: In heatmap.2(all.data, Rowv = FALSE, Colv = FALSE, trace = "none",  :
  Discrepancy: Rowv is FALSE, while dendrogram is `both'. Omitting row dendogram.
2: In heatmap.2(all.data, Rowv = FALSE, Colv = FALSE, trace = "none",  :
  Discrepancy: Colv is FALSE, while dendrogram is `none'. Omitting column dendogram.

また、関数にkey=Tを追加してみましたが、まだヒートマップにカラーキーが表示されません、どんなヘルプでも非常に感謝されます!!!

解決方法

RStudioに表示させる代わりに、自動的にプロットを保存すると、グラフは正常に表示されるようになりました。