Ich versuche, ein Streudiagramm zu zeichnen, dann einige Polygone überlagern und in den Polygonen mit bestimmten Farben in ggplot 2 und ich habe einige Probleme immer die richtigen Farben für die Füllung zu füllen. Ich kann das Streudiagramm und die Polygone zeichnen und das Streudiagramm und den Rand der Polygone gleich einfärben, aber wenn ich versuche, die Polygone zu füllen, kommen immer unterschiedliche Farben heraus oder geben mir Fehler.Wie man Farben in geom_polygon in ggplot richtig füllt?
Meine Daten wie folgt aussehen,
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
ich zwei Listen von Farben, eine für die Punkte in der Punktwolke, und einen für die Grenze und füllen den Polygone, der Grund gibt zwei Listen, liegt daran, dass ich die Punkte nach dem Datenspalten-Netzwerk gruppiere und Polygone um alle Punkte mit den Ebenen 1-5 (aber nicht 6 und 7) zeichnen möchte. So schaffe ich die folgenden Farblisten
col_list<-c("#FF222C", "#1DFBFF", "#FDFF24", "#2CFF18", "#FF38F4", "#C3C4C9", "#000000")
col_list5<-c("#FF222C", "#1DFBFF", "#FDFF24", "#2CFF18", "#FF38F4")
ich das Grundstück ziehen mit
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))
ich dann den folgenden Code verwenden, um die Polygone
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]
zu erzeugen, und dann überlagern die Polygone mit
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)
Alles funktioniert, außer dass die Füllfarben unterschiedlich sind, die Ränder und die Punkte sind die gleichen, die richtigen Farben, aber ich kann die Füllfarben nicht finden.
'Fehler in eval (ausdr, envir, enclos): Objekt 'Netzwerk' found' nicht. – Axeman