我目前有一個從 geom_tile 創建的熱圖,它由計數填充。但是,最大計數為 300000 ,最小值為 1,并且還包括 NA。我希望顏色有更大的變化,我該如何實作?

uj5u.com熱心網友回復:
我通常使用 pheatmap 功能,但肯定也可以使用您的功能。在此示例中,我使用該brewer.pal()函式獲取顏色調色板,但如果您知道顏色代碼,則可以創建自己的調色板。此函式的輸出只是帶有您選擇的顏色代碼的字符向量。
require(pheatmap)
require(RColorBrewer)
P <- brewer.pal(9,"Blues")
pheatmap(as.matrix(dataframe), scale = "none", color=brewer.pal(9,"Blues"),
treeheight_row = 0,treeheight_col = 0,
main = "title")
例如,我經常使用的這個調色板是用 19 種顏色代替的,它提供了更大的多樣性!
palette <- c('#E0FFFF', '#B0E0E6', '#FFFACD', '#FFFF00',
'#FFD700', '#FFA500', '#FF8C00', '#FF7F50', '#DAA520',
'#B8860B', '#B8860B', '#FA8072','#FF6347', '#FF4500',
'#DC143C', '#B22222', '#A52A2A', '#8B0000', '#800000')
uj5u.com熱心網友回復:
當您有一個傾斜的分布時,您需要轉換您的資料以獲得足夠的對比度。請記住,如果您的計數中有 40% 為 1,則無論轉換如何,它們都將保持相同的顏色。但是,如果您提到了一些高數字并且您沒有轉換資料,則 2、4 等的計數將顯示為與您的 1 相同的顏色。對于左偏態或右偏態分布有不同的技術。可以在這里找到有趣的閱讀:
ggplot(dt, aes(x, y, fill = sqrt(n))) geom_tile()

ggplot(dt, aes(x, y, fill = log10(n))) geom_tile()

ggplot(dt, aes(x, y, fill = log(n, 100))) geom_tile()

ggplot(dt, aes(x, y, fill = sqrt(log(n, 100)))) geom_tile()

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/420829.html
標籤:
