【问题标题】:Coloring continuous data in leaflet, R does not work为传单中的连续数据着色,R 不起作用
【发布时间】:2018-05-29 05:22:42
【问题描述】:

这是我的数据:

t <- data.frame(Name=c('A','B','C','D','E','F','G','H','I','J'),
                Longitude=c(151.2008,151.2458,150.8217,151.1215,150.8906,151.0660,150.8889,150.9188,150.4364,150.9982),
                Latitude=c(-33.90772,-33.89250,-34.05951,-33.97856,-34.40470,-33.90010,-33.92832,-33.90761,-34.44651,-33.79232),
                Diff=c(0.03,0.10,0.12,0.04,-0.12,0.34,-0.14,-0.01,0.21,-0.02),
                Diff1=c(30,100,120,40,-120,340,-140,-10,210,-20))

我想用leaflet和R在地图上画出这个点,用Diff / Diff1的值来连续颜色。这是我的代码:

library(leaflet)
pal <- colorNumeric(
    palette = colorRampPalette(c('red','green')),
    domain = t$Diff1)
leaflet(data=t) %>%
    addTiles() %>%
    addCircles(lng=~Longitude,lat=~Latitude,radius=10,popup=~Name,color=~pal(Diff1))

我在这里不需要很多不同的颜色。我只是希望颜色可以随着 Diff1 的增加而从红色变为绿色。但我的地图上只有红点:

另一个问题是,无论我如何改变半径的值,数据点的大小都不会改变。我不知道我哪里错了。

所以,我的问题是:

如何使用连续的颜色? 如何改变点的大小?

【问题讨论】:

  • 请将应用的完整代码粘贴到您的问题中。
  • 嗨,我把我使用的所有代码都放在这里了。刚才打错字了。已经修好了。谢谢

标签: r colors leaflet


【解决方案1】:

试试这个(不包括下面的数据框t):

library(leaflet)
pal <- colorNumeric(
  palette = colorRampPalette(c('red', 'green'))(length(t$Diff1)), 
  domain = t$Diff1)

leaflet(data = t) %>%
  addTiles() %>%
  addCircleMarkers(
    lng =  ~ Longitude,
    lat =  ~ Latitude,
    radius = ~ Diff * 100,
    popup =  ~ Name,
    color =  ~ pal(Diff1)
  )

记住,colorRampPalette实际上是返回一个函数,所以你需要在使用的时候用()“破解”打开函数,像这样:

colorRampPalette(c('red', 'green'))(length(t$Diff1))
# "#FF0000" "#E21C00" "#C63800" "#AA5500" "#8D7100" "#718D00" "#55AA00" "#38C600" "#1CE200" "#00FF00"

检查开始和结束颜色(应该是“红色”和“绿色”):

col2rgb("#FF0000")
#       [,1]
# red    255
# green    0
# blue     0

col2rgb("#00FF00")
#       [,1]
# red      0
# green  255
# blue     0

是的,它确实按预期工作。

【讨论】:

  • 是的!有效!您能否告诉我如何更改数据点的大小?谢谢
  • 刚刚修好了! :-)
猜你喜欢
  • 2015-02-12
  • 2019-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-10
相关资源
最近更新 更多