簡體   English   中英

leaflet 圖例和調色板的對數刻度

[英]Logarithmic scale for leaflet legend and color palette

我在 R 中使用 leaflet 繪制 GIS 數據,並將繪制點的顏色設置為數據集中的一個值。 數據值范圍很廣,區分值低端的顏色差異很重要,但區分較高值也很重要。 為了獲得我正在尋找的效果,我需要能夠使用對數刻度來確定點的顏色和圖例刻度。

下面的代碼給出了一個數據示例以及我現在繪制它的方式,但我不知道如何對顏色和圖例使用對數刻度。

# Some fake data
df <- sp::SpatialPointsDataFrame(
  cbind(
    (runif(100) - .5) * 10 - 90.620130,  # lng
    (runif(100) - .5) * 3.8 + 25.638077  # lat
  ),
  data.frame(testData = rexp(100, rate = 5) * 1000)
)

# Fomulate a colour palette
pal <- colorNumeric(
  palette = "YlGnBu",
  domain = df$testData
)

leaflet(df) %>% addTiles() %>%
  # Add circle markers coloured by the testData
  addCircleMarkers(fillColor = ~pal(testData), fillOpacity = 0.7, radius=6, stroke=FALSE) %>%
  # Add the legend
  addLegend("bottomright", pal = pal, values = ~testData,
    title = "Test Result",
    opacity = 1
)

誰能建議我如何做到這一點?

你可以這樣做:

 pal <- colorNumeric(palette = "YlGnBu",domain = log10(df$testData))

 leaflet(df) %>%
 addTiles() %>% 
addCircleMarkers(
fillColor = ~pal(log10(testData)), 
fillOpacity = 0.7, 
radius=6, 
stroke=FALSE) %>% 
addLegend("bottomright", 
pal = pal, 
values = ~log10(testData),
 title = "Test Result",
 opacity = 1)

因此,您可以將 log10() 放在上面的 3 個位置以獲得對數刻度顏色區分,但是這也會在對數刻度中留下傳說,這對大多數人來說並不友好? 你找到答案了嗎,還是其他人?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM