R 是否可以在带有ggplot geom_sf的地图中使用单独的固定颜色

R 是否可以在带有ggplot geom_sf的地图中使用单独的固定颜色,r,ggplot2,colors,sf,R,Ggplot2,Colors,Sf,我的问题是,我有一个sf对象,我想用ggplot映射它,并用因子变量的颜色填充县。 我为每个因子级别定义了一种颜色,即使是数据帧的子集也应该固定 我的问题是:我在图例中看到了正确的颜色,我看到了我的地图,但县没有填充任何颜色 我的测试数据集在这里: 第一步: 我定义了一个指示符变量,它位于0和任何正值之间。大于1的值为arlaming。正常值低于0.3。为了预测未来会发生什么,我将用分类指数变量的颜色绘制我的县。因此,我使用以下颜色定义了data.frame: brk <- c(0,0.

我的问题是,我有一个sf对象,我想用ggplot映射它,并用因子变量的颜色填充县。 我为每个因子级别定义了一种颜色,即使是数据帧的子集也应该固定

我的问题是:我在图例中看到了正确的颜色,我看到了我的地图,但县没有填充任何颜色

我的测试数据集在这里:

第一步:

我定义了一个指示符变量,它位于0和任何正值之间。大于1的值为arlaming。正常值低于0.3。为了预测未来会发生什么,我将用分类指数变量的颜色绘制我的县。因此,我使用以下颜色定义了data.frame:

brk <- c(0,0.1,0.5,0.6,0.8,0.9,1,Inf)
col <- c("greenyellow","chartreuse4","gold",
         "darkgoldenrod1","orange","orangered3","red")
lab <- c("up to 0.1","up to 0.3","up to 0.6",
         "up to 0.8","up to 0.9","up to 1","1 and more")

dfcol <-cbind.data.frame(lab,col) %>%
  mutate(lab = factor(lab, levels = lab)
结果是:

我在图例中看到了我的因子变量实验室

我看到我的地图上有我感兴趣的所有县的边界

但是这些县没有填充任何与因子变量
lab
相关的颜色

我犯了什么错


谢谢你的帮助

一种可能的解决方案是完全合并两个数据帧,以便显示所有值:

库(dplyr)

为什么每件事都这么容易?非常感谢你!
ggplot()+
  geom_sf(data = dfgeo,aes(fill = lab)) +
  scale_fill_manual(values = col,
                    limits = brk[1:7],
                    labels = lab ) +
  theme_void()