簡體   English   中英

R ggplot geom.tile 函數中的手動 bin 大小選擇?

[英]manual bin size selection in R ggplot geom.tile function?

有沒有一種方法可以手動設置大小不同的 bin 大小並在特定顏色代碼后為它們着色?

我想要一個帶有 binsizes 的熱圖:0-0.05、0.05-0.25、0.25-0.5、0.5-0.75 和 0.75-1 對於 bin 0-0.05 我想要設置顏色: "#ecefb7"用於剩余的 bins 我想要從low="#7fc8b9"high="#3a81b5"

我確實設法在我的圖例中找到了垃圾箱,但沒有使用特定的顏色編碼。 也許有人知道我如何實現這一目標?

樣本最小數據:

    Group sample     pvalue
1   OG0000010:Up  EB1_D 0.04900000
2 OG0000050:Down  EB1_D 0.19019725
3   OG0000638:Up  EB1_D 0.52008137
4   OG0000010:Up  EN1_D         NA
5   OG0000050:Down  EN1_D 0.01615993
6 OG0000638:Up  EN1_D 0.48958058

到目前為止我使用的代碼:

ggplot(pvaldata2, aes(x=sample, y=Group)) + 
  geom_tile(colour="black", size=0.25, aes(fill=pvalue)) +
  scale_fill_gradient(low="#ecefb7", high="#3a81b5", na.value = "white",
                      breaks = c(0.05, 0.25, 0.5, 0.75), 
                      labels = c("0.05", "0.25", "0.5", "0.75")) +
  theme(axis.text.y = element_text(size = 8))

生成的熱圖但仍然使用錯誤的 bin 顏色: 在此處輸入圖片說明

您可以通過更改克服色階完全控制scale_fill_gradientn ,設定limitsc(0, 1) ,specfiying所有的顏色在一個載體,以及它們在向量位置values 在您的情況下,它看起來像這樣:

ggplot(pvaldata2, aes(x = sample, y = Group)) + 
  geom_tile(colour="black", size = 0.25, aes(fill = pvalue)) +
  scale_fill_gradientn(colours = c(rep("#ecefb7", 2), "#7fc8b9", "#3a81b5"),
                       na.value = "white",
                       values = c(0, 0.05, 0.0501, 1),
                       limits = c(0, 1)) +
  theme(axis.text.y = element_text(size = 8))

在此處輸入圖片說明

如您所見,這將NA着色為白色,p 值低於 0.05(甚至非常接近 0.05 的值)為所需的淺黃色,其余為所選漸變。

暫無
暫無

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

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