R 带有2个数据集的ggplot2映射中的图例标签

R 带有2个数据集的ggplot2映射中的图例标签,r,ggplot2,mapping,spatial,R,Ggplot2,Mapping,Spatial,我肯定以前有人问过这个问题,但我在搜索中找不到。我使用ggplot2投影两个数据集来创建地图。我很难让传奇人物像我想的那样出现 示例代码: #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.0404

我肯定以前有人问过这个问题,但我在搜索中找不到。我使用
ggplot2
投影两个数据集来创建地图。我很难让传奇人物像我想的那样出现

示例代码:

#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())

我的问题是,图例中包含“颜色”和“绿色”两个词。理想情况下,我希望“颜色”一词被替换为“地点”,而“绿色”一词被完全删除。我尝试了以下更改:

scale_color_manual(values = "green", label="places")

但这只是将“地方”替换为“绿色”。我希望“颜色”一词被替换为“位置”,我不希望在图例中的圆圈后面有任何标签。于是我尝试了以下方法

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")
另外,请注意,我的两点数据集包含不同类型的数据。对于一个依赖于变量大小来确定圆大小的数据集,在另一个数据集中,我只是独立于确定大小的任何其他变量映射位置。非常感谢您的帮助。

类似的(基于答案)应该可以:

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="Places"), alpha =0.5) +
  scale_color_manual(name = "Places", values = c("Places" = "green"), labels = c("")) +
  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())

为了强制对这些地方进行美学映射,我将其放置在aes()中。&在
scale\u color\u manual()中指定映射。

类似的东西(基于答案)应该可以工作:

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="Places"), alpha =0.5) +
  scale_color_manual(name = "Places", values = c("Places" = "green"), labels = c("")) +
  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())

为了强制对这些地方进行美学映射,我将其放置在
aes()
中,并在
scale\u color\u manual()
中指定映射

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="Places"), alpha =0.5) +
  scale_color_manual(name = "Places", values = c("Places" = "green"), labels = c("")) +
  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())