使用sf,ggplot和cut_interval()在等轴测数中的组数错误

时间:2018-05-22 02:43:23

标签: r ggplot2 choropleth sf

我正在尝试使用sf中的ggplot2cut_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" )

我想获得5组但结果有4个: 4 groups

在某些数据集中,此代码可以正常工作。有时我可以通过在cut_interval()中选择说n = 6来解决这个问题来获得5个组。但是,我发现经常无法控制等值区域中的群体数量,这对我来说至关重要。到目前为止,我无法判断我的数据是否有问题,我的代码或软件错误。

1 个答案:

答案 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