0

我有一个数据框c = (lat, lng, decile),比如十分位数有十个级别。显然,通过 ggmap 和 ggplot 我们可以在给定的 (lat,lng) 中绘制一些点,就好像我们将color参数设置为 decile 列一样,geom_point它将对点进行分类并自动添加图例。但是,我用传单来装地图。使用这个

我写了这段代码:

pal <- colorNumeric(
  palette = colorRampPalette(rainbow(10))(length(c$decile)), 
  domain = c$decile)

c %>% leaflet() %>% addTiles() %>% addCircleMarkers(color = ~ pal(deciles))

我的地图上有十种颜色的点。所以,我的问题有两个部分: - 是否有像 ggplot 这样的简单方法来对传单中的颜色进行分类?- 如何为这十种颜色添加图例?addLegend(labels , colors)我应该如何解决这些论点?

更新:这是我的c

> head(c) lat lon decile 1 35.68705 51.38176 4 2 35.80742 51.48610 6 3 35.69151 51.39816 5 4 35.66665 51.35095 2 5 35.77566 51.40209 7 6 35.70326 51.41348 8

4

1 回答 1

2

所以我不完全确定我理解这个问题,但如果我理解了,要点是:您当前使用的是连续调色板,但您希望这是 10 个离散类别,并且您想要一个图例,对吗?

在那种情况下,你不能只使用 colorFactor() 而不是 colorNumeric() 吗?

就像:

pal <- colorFactor(
   palette = colorRampPalette(rainbow(10))(length(c$decile)), 
   domain = c$decile)

接着

   leaflet(c) %>% 
    addTiles() %>% 
    addCircleMarkers(lng=c$lon, lat=c$lat, color = ~pal(decile)) %>% 
    addLegend("bottomright", pal = pal, values = ~decile,
            title = "Deciles")

那是你所追求的吗?

于 2019-02-25T18:28:43.230 回答