Changement de couleurs pour ggplot geom_polygon dans la R
Je suis de la création d'une carte à l'aide de cartes de bibliothèque et ggplot de geom_polygon. J'avais tout simplement envie de changer la valeur par défaut de bleu, de rouge, de violet, de couleurs pour quelque chose d'autre. Je suis très nouveau à ggplot donc veuillez pardonner si je ne suis pas en utilisant le droit de types de données. Voici ce que les données que je suis en utilisant ressemble:
> head(m)
region long lat group order subregion Group.1 debt.to.income.ratio.mean ratio total
17 alabama -87.46201 30.38968 1 1 <NA> alabama 12.4059 20.51282 39
18 alabama -87.48493 30.37249 1 2 <NA> alabama 12.4059 20.51282 39
19 alabama -87.52503 30.37249 1 3 <NA> alabama 12.4059 20.51282 39
20 alabama -87.53076 30.33239 1 4 <NA> alabama 12.4059 20.51282 39
21 alabama -87.57087 30.32665 1 5 <NA> alabama 12.4059 20.51282 39
22 alabama -87.58806 30.32665 1 6 <NA> alabama 12.4059 20.51282 39
> head(v)
Group.1 debt.to.income.ratio.mean ratio region total
alabama alabama 12.40590 20.51282 alabama 39
alaska alaska 11.05333 33.33333 alaska 6
arizona arizona 11.62867 25.55556 arizona 90
arkansas arkansas 11.90300 5.00000 arkansas 20
california california 11.00183 32.59587 california 678
colorado colorado 11.55424 30.43478 colorado 92
Voici le code:
library(ggplot2)
library(maps)
states <- map_data("state")
m <- merge(states, v, by="region")
m <- m[order(m$order),]
p<-qplot(long, lat, data=m, group=group, fill=ratio, geom="polygon")
J'ai essayé de le ci-dessous et plus:
cols <- c("8" = "red","4" = "blue","6" = "darkgreen", "10" = "orange")
p + scale_colour_manual(values = cols)
p + scale_colour_brewer(palette="Set1")
p + scale_color_manual(values=c("#CC6666", "#9999CC"))
OriginalL'auteur tcash21 | 2011-05-13
Vous devez vous connecter pour publier un commentaire.
Le problème, c'est que vous êtes à l'aide d'une échelle de couleurs, mais utilisez le remplissage de l'esthétique dans l'intrigue. Vous pouvez utiliser
scale_fill_gradient()
pour deux couleurs etscale_fill_gradient2()
pour trois couleurs:Je recevais des problèmes avec
scale_fill_brewer()
se plaindre d'une variable continue fournie lorsqu'une variable discrète qui était attendu. Une solution facile est de créer discret bacs aveccut()
et ensuite l'utiliser comme remplissage esthétique:OriginalL'auteur Chase