Ich bin sicher, dass diese Frage zuvor gestellt wurde, aber ich konnte es nicht in der Suche finden. Ich habe zwei Datensätze, die ich projiziere, um eine Karte mit ggplot2
zu erstellen. Ich habe Probleme, die Legende so erscheinen zu lassen, wie ich möchte.Legende Etikett in ggplot2 Mapping mit 2 Datensätzen
Beispielcode:
#First dataset
lat<-as.numeric(c(42.279594, 37.335480, 42.652580, 42.331429, 32.897480, 40.785091))
lon<-as.numeric(c(-83.732124, -121.893028,-73.756233, -83.045753, -97.040443, -73.968285))
Location<-c("Ann Arbor, MI","San Joke, CA", "Albany, NY",
"Detroit, MI", "Dallas, TX","New York, NY")
Incidents<-as.numeric(c(21, 12, 9, 6, 5, 5))
df1<-cbind.data.frame(Location, Incidents, lat, lon)
#Second dataset
Location<-c("New York, NY","Los Angeles, CA", "Queens, NY",
"Minneapolis, MN", "Austin, TX","Bronx, NY")
lat<-as.numeric(c(40.71278, 34.05223, 40.72822, 44.97775, 30.26715, 40.84478))
lon<-as.numeric(c(-74.00594, -118.24368,-73.79485, -93.26501, -97.74306, -73.86483))
df2<-cbind.data.frame(Location, lat, lon)
#Map
library(ggplot2)
states <- map_data("state")
states <- states[order(states$order), ]
ggplot() +
geom_polygon(data=states, aes(long, lat, group=group),
size=0.1, fill="black", color="white", alpha=0.75) +
geom_point(data=df1, aes(lon, lat,size= Incidents), color="red", alpha =0.5) +
geom_point(data=df2, aes(lon, lat), color="green", alpha =0.5) +
theme(axis.line=element_blank(),
axis.text.x=element_blank(),
axis.text.y=element_blank(),
axis.ticks=element_blank(),
axis.title.x=element_blank(),
axis.title.y=element_blank(),
legend.position="bottom",
panel.background=element_blank(),
panel.border=element_blank(),
panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
plot.background=element_blank())
Dies ist in der folgenden Karte Ergebnisse:
Das Problem ist, dass seine die Legende Informationen in Grün fehlt, die Sinn machen bc ich nicht haben der Ästhetik etwas zugeordnet. Aber ich bin in Probleme laufen, wenn ich tun:
Hier bin ich das Hinzufügen color="green"
in aes(lon, lat)
für df2
und scale_color_manual(values = "green")
ggplot() +
geom_polygon(data=states, aes(long, lat, group=group),
size=0.1, fill="black", color="white", alpha=0.75) +
geom_point(data= df, aes(lon, lat,size= Incidents), color="red", alpha =0.5) +
geom_point(data=df2, aes(lon, lat, color="green"), alpha =0.5) +
theme(axis.line=element_blank(),
axis.text.x=element_blank(),
axis.text.y=element_blank(),
axis.ticks=element_blank(),
axis.title.x=element_blank(),
axis.title.y=element_blank(),
legend.position="bottom",
panel.background=element_blank(),
panel.border=element_blank(),
panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
plot.background=element_blank())
Mein Problem dabei ist, dass die Legende das Wort enthält "Farbe" drin und "grün". Idealerweise möchte ich, dass das Wort "Farbe" durch das Wort "Orte" ersetzt wird und dass das Wort "Grün" vollständig gelöscht wird. Ich habe versucht, die folgende Änderung:
scale_color_manual(values = "green", label="places")
Aber das einfach ersetzt das Wort „grün“ für „Orte“. Ich möchte, dass das Wort "Farbe" durch "Orte" ersetzt wird, und ich möchte nicht, dass ein Etikett dem Kreis in der Legende folgt. Also habe ich folgendes versucht.
places<-c("green","green","green","green","green","green")
df2<-cbind.data.frame(df2, green)
Location lat lon places
1 Ann Arbor, MI 42.27959 -83.73212 green
2 San Joke, CA 37.33548 -121.89303 green
3 Albany, NY 42.65258 -73.75623 green
4 Detroit, MI 42.33143 -83.04575 green
5 Dallas, TX 32.89748 -97.04044 green
6 New York, NY 40.78509 -73.96828 green
ggplot() +
geom_polygon(data=states, aes(long, lat, group=group),
size=0.1, fill="black", color="white", alpha=0.75) +
geom_point(data= df, aes(lon, lat,size= Incidents), color="red", alpha =0.5) +
geom_point(data=df2, aes(lon, lat, color=places), alpha =0.5) +
theme(axis.line=element_blank(),
axis.text.x=element_blank(),
axis.text.y=element_blank(),
axis.ticks=element_blank(),
axis.title.x=element_blank(),
axis.title.y=element_blank(),
legend.position="bottom",
panel.background=element_blank(),
panel.border=element_blank(),
panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
plot.background=element_blank())+ scale_color_manual(values = "green")
, dass es mich ein wenig an die Quere kommt. Wie Sie sehen können, wurde "Farbe" durch "Orte" ersetzt, aber "Grün" ist immer noch da.
Der Versuch scale_color_manual(values = "")
gibt mir die folgende Fehlermeldung:
Error in grDevices::col2rgb(colour, TRUE) : invalid color name ''
Beachten Sie auch, dass meine zwei Punkt Datensätze verschiedene Arten von Daten enthalten. Bei einem Datensatz, der sich auf die Größe einer Variablen stützt, um die Kreisgröße zu bestimmen, mappele ich bei der anderen einfach Orte, die unabhängig von einer anderen Variablen sind, die die Größe bestimmt. Jede Hilfe wird sehr geschätzt.