2017-08-19 23 views
0

是否有方法根據變量的特定範圍定義調色板中斷? 以一個範圍從0到1的連續變量x爲例。我定義了palette爲:爲小冊子定義調色板中斷

palette <- colorNumeric(palette = rev("RdYlGn"), domain = NULL, na.color = NA) 

,並在相應的單張功能,我所定義的color爲:

color = ~palette(x) 

這將返回一個好看的地圖,然而,在休息以相等的空間定義:0.0,0.2,0.4,...,1.0

相反,我所定義的假期,因爲:

[email protected]$x_brks <- cut(x, 
        breaks=c(0, 0.55, 0.65, 0.75, 0.85, 0.95, 1.0), 
        labels=c("<=0.55", ">0.55 and <=0.65", ">0.65 and <=0.75", 
          ">0.75 and <= 0.85", ">0.85 and <=0.95", ">0.95") 
        ) 

並希望保持相同的調色板(最低範圍是紅色,最高範圍是綠色)。我正在繪製多個圖層,我想爲它們保持相同的比例。

我無法在Leaflet中的color = ~palette(x_brks)函數中傳遞此新變量x_brks - 我得到此錯誤:Error in Summary.factor(c(6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 5L, : ‘range’ not meaningful for factors

實現此目標的最佳方法是什麼?

回答

0

嘗試colorBin

risk.bins <-c(0, 0.55, 0.65, 0.75, 0.85, 0.95, 1.0), 
risk.pal <- colorBin("plasma", bins=risk.bins, na.color = "#aaff56") 

,然後在瓣功能通過插入文本是

labels=c("<=0.55", ">0.55 and <=0.65", ">0.65 and <=0.75", 
         ">0.75 and <= 0.85", ">0.85 and <=0.95", ">0.95") 
+0

感謝

color = ~ risk.pal(value), 

標籤可以在addLegend手動設置!這工作,但我不能讓標籤顯示爲定義。我正在使用那個爲什麼不起作用的標籤。我將其更改爲顏色和標籤,但出現錯誤:「顏色」和「標籤」必須具有相同的長度。 '顏色=〜調色板(值), 標籤= C( 「<=0.55", "> 0.55和<=0.65", "> 0.65和<=0.75", "> 0.75和<= 0.85", "> 0.85和<=0.95", "> 0.95" ,」「)' 注:'長度(獨特(調色板(值))) '是7,它等於標籤向量的長度。 –

+0

我在標籤中看到8個。最後一個是什麼?一個空白? – pdbentley

+0

是的,這是'NA',但有或沒有它,它不起作用,我得到相同的錯誤。 –