Uważam, że moja ramka danych jest w porządku, a mój kod jest w porządku. W rzeczywistości wyeliminowałem części ramki danych i większość kodu graficznego, aby uczynić rzeczy tak prostymi, jak to tylko możliwe. Ale nadal otrzymuję:
Error in .Call.graphics(C_palette2, .Call(C_palette2, NULL)) :
invalid graphics state
Co tu jest nie tak? Oto dane:
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
Kiedy pracuję z tymi danymi, podaję daty w ten sposób:
df<-df[order(as.Date(df$date,format="%d/%m/%Y")),,drop=FALSE]
i tutaj chcę zrobić wykres rozrzutu:
ggplot(data = df,aes(x = date,y = val)) +
geom_point(aes(group = trt))
ggplot2
zainstalowałeś pierwotnie?Odpowiedzi:
Napotkałem ten sam błąd i rozwiązałem go, uruchamiając:
a następnie ponownie uruchomić wykres. Myślę, że urządzenie graficzne zostało wcześniej w jakiś sposób pomieszane przez eksportowanie niektórych grafik i nie zostało zresetowane. To zadziałało dla mnie i jest prostsze niż ponowna instalacja ggplot2.
źródło
par(mfrow = c(..., ...))
wcześniejszym użyciu. Nie wiem o innych parametrach graficznych, ale mogą powodować ten problem.Rozwiązaniem jest po prostu ponowna instalacja
ggplot2
. Być może występuje niezgodność między używaną wersją R a zainstalowaną wersjąggplot2
. Ewentualnie coś mogło pójść nie tak podczasggplot2
wcześniejszej instalacji , powodując widoczny problem.źródło
dev.off()
nie działa dla mnie i jest to dobra druga opcja, aby spróbować ponownie zainstalować ggplot2.dev.off()
najpierw, zajmuje mniej czasu niż ponowna instalacja pakietu. Jeślidev.off()
nie zadziała, może to być drugi krok .Zauważyłem, że dzieje się tak, gdy mieszasz wykresy ggplot z wykresami w tej samej sesji. Zastosowanie rozwiązania „dev.off” zaproponowanego przez Paula rozwiązuje problem.
źródło
dev.off'
robi?Prawdopodobnie nie musisz ponownie instalować ggplot2
Rozwiązanie: wróć do działki, która wcześniej nie działała. Weźmy na przykład poniższe wyjście konsoli. Marginesy rysunku (okno wyświetlające wykresy) były zbyt małe, aby wyświetlić wykresy par (MinusInner). Następnie, gdy próbowałem wykonać następny wykres q, R wciąż zawieszał się na poprzednim błędzie.
Naprawiłem pierwszy błąd, rozszerzając okno wykresu i ponownie uruchamiając wykres par (MinusInner). Więc niech to, zadziałało.
źródło
Rozwiązałem to, usuwając wszystkie wątki w konsoli, a następnie upewniając się, że obszar wykresu jest wystarczająco duży, aby pomieścić to, co tworzyłem.
źródło
spróbuj wydobyć grafikę za pomocą
x11()
lubwin.graph()
i rozwiąż ten problem.źródło