ggplot2を使用すると永続的な無効なグラフィック状態エラーが発生する


119

私のデータフレームは問題なく、コードも問題ないと思います。実際、私はデータフレームの一部とグラフ化コードの大部分を削除して、物事をできるだけ基本的なものにしています。しかし、それでも、私は得ます:

Error in .Call.graphics(C_palette2, .Call(C_palette2, NULL)) : 
  invalid graphics state

ここで何が問題になっていますか?ここにデータがあります:

 date   trt var val
1/8/2008    cc  sw5 0.2684138
1/8/2008    cc  sw15    0.2897586
1/8/2008    cc  sw5 0.2822414
2/8/2008    cc  sw5 0.2494583
2/8/2008    cc  sw5 0.2692917
2/8/2008    cc  sw15    0.2619167
2/8/2008    cc  sw5 0.204375
3/8/2008    cc  sw5 0.2430625
3/8/2008    cc  sw5 0.2654375
3/8/2008    cc  sw5 0.2509583
3/8/2008    cc  sw5 0.2055625
1/8/2008    ccw sw15    0.2212414
1/8/2008    ccw sw5 0.3613448
1/8/2008    ccw sw5 0.2607586
2/8/2008    ccw sw5 0.2087917
2/8/2008    ccw sw15    0.3390417
2/8/2008    ccw sw5 0.2436458
2/8/2008    ccw sw5 0.290875
3/8/2008    ccw sw5 0.20175
3/8/2008    ccw sw15    0.328875
3/8/2008    ccw sw5 0.2328958
3/8/2008    ccw sw5 0.2868958

このデータを操作するときは、次のように日付を指定します。

df<-df[order(as.Date(df$date,format="%d/%m/%Y")),,drop=FALSE]

ここで散布図を作成します。

ggplot(data = df,aes(x = date,y = val)) + 
 geom_point(aes(group = trt))

3
ggplot2を(再)インストールしてみましたか?
Paul Hiemstra 2013年

これを回答として追加しました。これにより、他の人がより簡単に回答を見つけることができます。回答の横にあるチェックマークをクリックすると、回答を受け入れることができます。確認のために、ggplot2元々インストールしていたのですか?
ポールHiemstra 2013年

はい、すでにインストールされています。
Nazer

3
Rセッションを再起動すると問題が解決しました。
Chris

参考までに-この問題は、小さすぎる使用図の寸法を作成しようとした場合にも発生する可能性があります(たとえば、単位を指定せずにインチで寸法を指定しようとした場合)。
キース・ヒュージット

回答:


353

私はこれと同じエラーに遭遇し、実行することで解決しました:

dev.off()

そして、もう一度プロットを実行します。グラフィックスデバイスは、いくつかのグラフィックスをエクスポートすることによって何らかの方法で以前に混乱し、リセットされなかったと思います。これは私にとってはうまくいき、ggplot2を再インストールするよりも簡単です。


1
これは問題を解決しますが、なぜそれが機能するのかについて何か考えがありますか?
ペドロ

2
@PedroCavalcanteOliveira par(mfrow = c(..., ...))以前使用した後、問題が発生しました。他のグラフィックパラメータについては不明ですが、この問題が発生する可能性があります。
loki 2018

1
それは役に立ちましたが、何ですか?
vasili111

9

解決策は、単に再インストールすることggplot2です。使用しているRバージョンとインストールされているバージョンのの間に互換性がない可能性がありますggplot2。または、ggplot2以前のインストール中に問題が発生し、表示されている問題が発生した可能性があります。


4
この回答をここに保持していただきありがとうございます。他の答えは簡単ですが、dev.off()私にとってはうまくいかなかったので、ggplot2を再インストールすることをお勧めします。
Nazer、2014年

dev.off()パッケージを再インストールするよりも、最初に試してみる方が良い場合があり、時間がかかりません。dev.off()うまくいかなかった場合、これは2番目のステップになります。
Jasonゴール

6

同じセッションでggplotチャートとプロットチャートを混合すると、これが発生することがわかりました。Paulが提案した「dev.off」ソリューションを使用すると、問題が解決します。


なにdev.off'
vasili111

4

おそらくggplot2を再インストールする必要はありません

解決策:以前は機能しなかったプロットに戻ります。たとえば、以下のコンソール出力を見てください。図の余白(プロットを表示するウィンドウ)が小さすぎて、ペア(MinusInner)プロットを表示できませんでした。次に、次のqplotを作成しようとしたときに、Rはまだ前のエラーでハングアップしていました。

ペア(MinusInner)plot.new()のエラー:余白が大きすぎるqplot(Sample.Type、BAE、data = MinusInner、geom = "boxplot").Call.graphics(C_palette2、.Call(C_palette2、NULL)のエラー):無効なグラフィック状態

プロットウィンドウを展開し、pairs(MinusInner)プロットを再実行して、最初のエラーを修正しました。その後、それはうまくいきました。

ペア(MinusInner)qplot(Sample.Type、BAE、data = MinusInner、geom = "boxplot")


0

これを解決するには、コンソールですべてのプロットをクリアし、作成したプロットに対応できる十分な大きさのプロット領域を確保します。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.