J'essaie de dessiner un nuage de points, puis de superposer des polygones et de remplir les polygones avec des couleurs spécifiques dans ggplot 2 et j'ai quelques difficultés à obtenir les bonnes couleurs pour le remplissage. Je peux dessiner le nuage de points et les polygones, colorier le nuage de points et la bordure des polygones, mais quand j'essaie de remplir les polygones, ils sortent toujours des couleurs différentes ou me donnent des erreurs.Comment remplir les couleurs correctement dans geom_polygon dans ggplot?
Mes données ressemble à ceci,
id lat long group
Ak 0.5109300 30.43713 1
Ak 0.5109300 30.43713 2
An 0.4709994 30.43434 1
An 0.4860330 30.44015 2
At 0.4956100 30.44610 2
At 0.4938700 30.44640 2
At 0.4837816 30.44658 3
Be 0.4932194 30.43455 3
Bo 0.4922330 30.44582 1
Bo 0.4922330 30.44582 3
cb 0.4929994 30.44486 5
de 0.4926486 30.45684 5
de 0.5000001 30.45331 5
eg 0.4854526 30.46824 6
eh 0.4765586 30.46987 6
gh 0.4822123 30.54835 7
J'ai deux listes de couleurs, un pour les points du nuage de points, et un pour la frontière et remplir des polygones, la raison pour laquelle il y a deux listes, C'est parce que je regroupe les points, par le réseau de colonnes de données, et que je veux dessiner des polygones autour de tous les points avec les niveaux 1 -5 (mais pas 6 et 7). Je crée donc les listes de couleurs suivantes
col_list<-c("#FF222C", "#1DFBFF", "#FDFF24", "#2CFF18", "#FF38F4", "#C3C4C9", "#000000")
col_list5<-c("#FF222C", "#1DFBFF", "#FDFF24", "#2CFF18", "#FF38F4")
Je dessine l'intrigue avec
g<-ggplot(data= samples, aes(x=long, y=lat))+
geom_point(color = col_list[samples$group])+
theme(panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
panel.background = element_blank(),
panel.border = element_rect(colour = "black", fill=NA, size=1))
J'utilise ensuite le code suivant pour générer les polygones
library(plyr)
samples_group1_5<-subset(samples, network < 6)
find_hull <- function(samples_group1_5) samples_group1_5[chull(samples_group1_5[,3], samples_group1_5[,2]), ]
hulls <- ddply(samples_group1_5, "group", find_hull)
g.col <- col_list5[hulls$group]
Et puis superposer les polygones avec
g+
geom_polygon(data = hulls, alpha = 0.5, aes(fill=factor(group))) +
geom_polygon(data = hulls, alpha = 0, aes(group=factor(group)), colour=g.col)
Tout fonctionne, sauf que les couleurs de remplissage sont différentes, les bordures et les points sont les mêmes, les couleurs correctes, mais je n'arrive pas à faire correspondre les couleurs de remplissage.
'Erreur dans eval (expr, envir, enclos): objet 'réseau' non trouvé'. – Axeman