web-dev-qa-db-fra.com

Erreur permanente d'état graphique non valide lors de l'utilisation de ggplot2

Je crois que mon cadre de données est correct et que mon code est correct. En fait, j'ai éliminé des parties de la trame de données et la plupart du code graphique pour rendre les choses aussi basiques que possible. Mais encore, je reçois:

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

Qu'est-ce qui ne va pas ici? Voici les données:

 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

Lorsque je travaille avec ces données, je spécifie des dates comme ceci:

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

et ici je veux faire un nuage de points:

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

J'ai rencontré cette même erreur et l'ai résolue en exécutant:

dev.off()

puis relancer l'intrigue. Je pense que le périphérique graphique a été endommagé plus tôt en exportant certains graphiques et il n'a pas été réinitialisé. Cela a fonctionné pour moi et c'est plus simple que de réinstaller ggplot2.

325
paul

La solution consiste simplement à réinstaller ggplot2. Il existe peut-être une incompatibilité entre la version R que vous utilisez et votre version installée de ggplot2. Sinon, quelque chose s'est mal passé lors de l'installation de ggplot2 plus tôt, ce qui est à l'origine du problème que vous voyez.

7
Paul Hiemstra

Vous n'avez probablement pas besoin de réinstaller ggplot2

Solution: revenir à l'intrigue qui ne fonctionnait pas auparavant. Prenez la sortie de console ci-dessous par exemple. Les marges des figures (la fenêtre qui affiche vos tracés) étaient trop petites pour afficher le tracé des paires (MinusInner). Puis, quand j'ai essayé de faire le prochain qplot, R était toujours suspendu à l'erreur précédente.

paires (MinusInner) Erreur dans plot.new (): marges trop grandes qplot (Sample.Type, BAE, data = MinusInner, geom = "boxplot") Erreur dans .Call.graphics (C_palette2, .Call (C_palette2, NULL) ): état graphique non valide

J'ai corrigé la première erreur en développant la fenêtre de tracé et en réexécutant le tracé de paires (MinusInner). Alors blam, ça a marché.

paires (MinusInner) qplot (Sample.Type, BAE, data = MinusInner, geom = "boxplot")

4
DjBabyKangaroo

J'ai constaté que cela se produisait lorsque vous mélangez des graphiques ggplot avec des graphiques dans la même session. Utiliser la solution 'dev.off' suggérée par Paul résout le problème.

4
Ernie

J'ai résolu ce problème en nettoyant toutes les parcelles de la console, puis en m'assurant que la zone de parcelle était suffisamment grande pour accueillir ce que je créais.

0
Daisy