如何获得更合乎逻辑的比例尺?

How do I get a more logical scale bar?

我已经绘制了整个英国的长尾小鹦鹉观测点数据(目前是假的),观测点按观测区域的人口密度着色。我有一个连续的比例尺,但我想要scale 本身被笨拙地注释。我怎样才能用更均匀的分隔线绘制它?

代码如下:

############################ #情节观察 x POP_DENS ############################

ggplot() +
  geom_polygon(data = UK, aes(x=long, y = lat, group = group), fill="gray14", alpha=0.7) +
  geom_point(data=paratweets_4, aes(x=coords.x1, y=coords.x2, color=pop_dens, shape=Occupancy), size=2,stroke=FALSE) +
  scale_color_viridis(option="magma", trans="log", name="Human Population Density (km2)") +
  theme_minimal() + ylim(50,59) + coord_map() + 
  ggtitle("Parakeet Observations") 

这是地图:

一种策略是为比例尺制作一列,并使用对您有意义的指标。例如,

df %>% 
  mutate(scale_column = case_when(
    pop_dens == 0 ~ "0",
    pop_dens > 0 & pop_dens < 100 ~ "0-100",
    pop_dens > 100 & pop_dens < 1000 ~ "100-999",
    pop_dens > 1000 & pop_dens < 2000 ~ "1000-1999",
  ))

然后使用该列作为您的比例。 另一种选择是修改 breaks of the scales. 但是,我认为在这种情况下,不按颜色缩放可能是有意义的,而是更改点的 size