115 votes

Comment ajouter une texture aux couleurs de remplissage dans ggplot2

J'utilise actuellement scale_brewer() pour le remplissage et ceux-ci sont magnifiques en couleur (à l'écran et via une imprimante couleur) mais s'impriment relativement uniformément en gris lorsqu'on utilise une imprimante noir et blanc. J'ai cherché dans la base de données en ligne ggplot2 mais je n'ai rien vu concernant l'ajout de textures aux couleurs de remplissage. Existe-t-il un document officiel ggplot2 Comment faire ou est-ce que quelqu'un a un hack qu'il utilise ? Par textures, j'entends des choses comme des barres diagonales, des barres diagonales inversées, des motifs de points, etc. qui permettraient de différencier les couleurs de remplissage lorsqu'elles sont imprimées en noir et blanc.

2voto

UlvHare Points 53

Creo que Docconcoct Le travail est formidable, mais j'ai soudain cherché sur Google un paquet spécial --- Diagramme à bandes . Je n'ai pas vu le code interne mais la vignette semble utile.

2voto

bill999 Points 854

ggrough pourrait être intéressante : https://xvrdm.github.io/ggrough/

1voto

Ondrej Vencalek Points 11

Il peut être utile de créer un cadre de données fictif dont les contours correspondent aux "textures" et d'utiliser ensuite geom_contour. Voici mon exemple :

library(ggplot2)

eg = expand.grid(R1 = seq(0,1,by=0.01), R2 = seq(0,1,by=0.01))
     eg$importance = (eg$R1+eg$R2)/2

  ggplot(eg , aes(x = R1, y = R2)) +
  geom_raster(aes(fill = importance), interpolate=TRUE) +
  scale_fill_gradient2(low="white", high="gray20", limits=c(0,1)) +
  theme_classic()+
  geom_contour(bins=5,aes(z=importance), color="black", size=0.6)+
  coord_fixed(ratio = 1, xlim=c(0,1),ylim=c(0,1))

Et voici le résultat : tracé ombré avec des lignes

(les lignes doivent être lissées)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X