7
votes

Créer une palette de couleurs plus continue dans R, ggplot2, réseau ou latticiextra

AVERTISSEMENT .... La question très novice suit:

J'essaie de tracer une distribution assez régulière de plusieurs milliers (x, y) points associés à une valeur, appelons z, qui varient de manière très irrégulière, dire, -20 à +20. Je ne suis pas intéressé par le lissage; Je veux que les valeurs de points Z soient tracées selon une palette de couleurs variables doucement comme Gnuplot pouvant faire avec la palette de couleurs lisse appropriée. J'ai essayé Base R, GGPLot2 et LatticeExtra, et au mieux que je peux, je peux trouver ce qui suit, qui fait presque ce que je veux: xxx p "point de données ressemble à: 1302525 225167 -3.5

Lorsque je trace mon Dataframe avec le "50" dans la dernière ligne de code comme 3, je reçois le comportement prévisible R Recycle des couleurs rouge, blanche et bleue répétant cinq fois avec le 16ème segment de barre de couleur blanc. Changer les 3 à A 7 provoque plus de nuances de rouge et de bleu créant 2 segments de plage de couleurs répétés avec deux couleurs rougeâtres laissées au fur et à mesure que la plage de couleurs essaie de recycler. Cela suggère de rendre ce nombre plus important entraîne une graduation finale des couleurs. Mais si je mets un nombre supérieur à 16 ans, c'est tout ce que je reçois, 16 segments de couleur, changeant uniformément du rouge, au blanc, au bleu. Mais j'aimerais que l'échelle de couleur encore plus fine, et dans un monde parfait, forcer une Z de zéro à être la couleur blanche.

Mon expérience jusqu'à présent avec R est quand je ne peux pas faire quelque chose d'aussi simple que cela, il me manque un concept très fondamental. Qu'est-ce que c'est?


0 commentaires

3 Réponses :


7
votes

Avez-vous regardé échelle_gradienter dans ggplot? Ou échelle_breigne pour des couleurs discrètes? Voici un exemple de échelle_grade xxx


1 commentaires

Merci Chase pour la poussée est cette direction.



11
votes

En ce qui concerne le treillis, vous pouvez configurer votre palette de couleurs avec RColorBrewer (ou même Colorspace ). Utilisation de l'exemple fourni par @chase, mais avec une valeur positive pour z : xxx

Notez qu'il est également nécessaire ici pour augmenter la gamme de couleurs disponibles par interpolation. Aussi, avec niveauplot () , vous pouvez jouer avec couper = et jolie = .

Entrez la description de l'image ici


0 commentaires

6
votes

Le "concept" que vous manquez est le à code> argument sur niveauplot () code> qui définit les points d'arrêt entre les niveaux de couleur et / ou les lignes de contour. La valeur par défaut est jolie (z) code> qui ne résulte que de quelques niveaux. Vous pouvez définir à code> pour être une séquence couvrant la plage de valeurs souhaitée.

library(latticeExtra)

dat <- data.frame(x = rnorm(1000), y = rnorm(1000), z = rnorm(1000, mean = 1))
## for centering the colour key around zero
maxz <- max(abs(dat$z))

levelplot(z ~ x * y, dat, at = seq(-maxz, maxz, length = 100), 
    panel = panel.levelplot.points, par.settings = custom.theme.2())


0 commentaires