[英]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.