[英]R colour scale for logarithmic data?
我正在尋找一個對數(基數為 10)色標來為 R 中的 SOM U 矩陣圖着色。具體來說,尋找一個 colorRampPallette,在原始顏色編碼時,它在分布的低端比高的具有更多的 bin單位。
我在這里找到了一個可能的線索https://stat.ethz.ch/pipermail/r-help/2006-July/110187.html但這個解決方案似乎過於復雜。
我不確定從哪里開始,但懷疑有人已經解決了這個對數調色板問題?
在ggplot
可以使用scale_color_gradientn
。 這是一個帶有cars
數據的示例。
ggplot(cars)+
geom_point(aes(x = speed, y =dist, color = dist))+
scale_color_gradientn(colors = colorRampPalette(colors = c("blue", "white"))(nrow(cars)),
values = scales::rescale(log(sort(cars$dist))))
總而言之,可以使用colorRampPalette
函數定義任意數量顏色的線性漸變,並且在scale_color_gradientn
您可以將任何顏色映射到某個值 - 顏色的分布可以是線性的、對數的或任意的。 由於values
參數接受 0 - 1 范圍,因此在對數轉換后的值上使用了scales::rescale
。
比較,這里沒有轉換
ggplot(cars)+
geom_point(aes(x = speed, y =dist, color = dist))+
scale_color_gradientn(colors = colorRampPalette(colors = c("blue", "white"))(nrow(cars)), values = scales::rescale(sort(cars$dist)))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.