我正在尝试使用sf
中的ggplot2
,cut_interval()
和ggplot2
来控制等值区域中的类别数量。有时它可以工作,但是对于一些数据集,类别的数量是1。下面是我的代码,输入数据集(7Kb)在这里:
ggplot-test-04.geojson
library(sf)
library(ggplot2)
lga.sf <- st_read("ggplot-test-04.geojson")
ggplot() +
geom_sf(data = lga.sf,
aes(fill = cut_interval(value,5))) +
scale_fill_brewer(palette = "RdYlBu",
name = "Legend" )
在某些数据集中,此代码可以正常工作。有时我可以通过在cut_interval()
中选择说n = 6来解决这个问题来获得5个组。但是,我发现经常无法控制等值区域中的群体数量,这对我来说至关重要。到目前为止,我无法判断我的数据是否有问题,我的代码或软件错误。
答案 0 :(得分:5)
在这种情况下,cut_interval()
正在正常执行,但其中一个切割中没有观察到,因此ggplot()
忽略它。
(恰好是中间区间 - 您实际上可以看到第二个和第三个图例项目之间的覆盖差距。)
您可以使用cut_interval()
table()
来验证这一点
table(cut_interval(lga.sf$value, 5))
[1.44,1.61] (1.61,1.78] (1.78,1.95] (1.95,2.11] (2.11,2.28]
3 7 0 1 1