2015-08-14 4 views
0

J'ai essayé de dessiner un tracé à barres en utilisant ggplot2 « s geom_bar() sur une gWdigets » toile de ggraphics() mais les barres partagent la même couleur (qui est la dernière couleur dans la palette) . D'autre part, si le même est dessiné sur windows() de base R, alors chaque barre a sa propre couleur (le comportement souhaité). Je ne suis pas sûr si ce problème de rendu est dû à gWidgetsRGtk2, ggplot2 ou cairoDevice. Une idée?ggplot2 geom_bar remplit uniquement avec la dernière couleur gWidgets ggraphics

Voici un exemple de code pour reproduire le problème:

library(gWidgetsRGtk2) 
library(ggplot2) 
x <- data.frame(sex=factor(c("M", "F")), value=c(1,2)) 
fig <- ggplot(data=x, aes(sex, value, fill=sex)) + geom_bar(stat="identity") 

ggraphics(container=gwindow()) 
print(fig) # Both bars use the last color incorrectly. 

windows() 
fig # Each bar uses its own color correctly. 

Voici mon sessionInfo():

R version 3.2.1 (2015-06-18) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 
Running under: Windows 7 x64 (build 7601) Service Pack 1 

locale: 
[1] LC_COLLATE=English_United States.1252 
[2] LC_CTYPE=English_United States.1252 
[3] LC_MONETARY=English_United States.1252 
[4] LC_NUMERIC=C       
[5] LC_TIME=English_United States.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] ggplot2_1.0.1  gWidgetsRGtk2_0.0-83 cairoDevice_2.22  
[4] gWidgets_0.0-54  RGtk2_2.20.31  

loaded via a namespace (and not attached): 
[1] Rcpp_0.12.0  digest_0.6.8  MASS_7.3-43  grid_3.2.1  
[5] plyr_1.8.3  gtable_0.1.2  magrittr_1.5  scales_0.2.5  
[9] stringi_0.5-5 reshape2_1.4.1 labeling_0.3  proto_0.3-10  
[13] tools_3.2.1  stringr_1.0.0 munsell_0.4.2 colorspace_1.2-6 
+0

Je ne peux pas vraiment tester en ce moment, mais je suppose que le problème réside dans le paquet 'cairoDevice', bien que ce soit dans la façon dont' gWidgets2' appelle ces fonctionnalités. – jverzani

Répondre

1

Essayez d'ajouter l'option de couleur pour ggplot à fig < - ggplot (données = x , aes (sexe, valeur, couleur = sexe, remplissage = sexe)) + geom_bar (stat = "identité")

semble que cela fonctionne.

+0

J'ai juste essayé votre suggestion avec 'color = sex' mais ça ne marche toujours pas. – Quatchi