簡體   English   中英

如何在R中使用ggplot2創建具有連續比例的熱圖

[英]How to create a heatmap with continuous scale using ggplot2 in R

我有一個包含幾千行的數據框,形式為

group = c("gr1","gr1","gr1","gr1","gr1","gr1","gr1","gr1","gr1","gr1","gr2","gr2","gr2","gr2","gr2","gr2","gr2","gr2","gr2","gr2","gr3","gr3","gr3","gr3","gr3","gr3","gr3","gr3","gr3","gr3")
pos = c(1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10)
color = c(2,2,2,2,3,3,2,2,3,2,1,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,1,1,2,2)
df = data.frame(group, pos, color)

並想制作一種熱圖,其中一個軸具有連續的比例(位置)。 顏色列是分類的。 但是由於大量的數據點,我想使用裝箱,即將其用作連續變量。

這大致相當於情節的樣子: 在此處輸入圖片說明

我想不出一種使用ggplot2 / R創建這樣的圖的方法。 我嘗試了幾種幾何,例如geom_point()

ggplot(data=df, aes(x=strain, y=pos, color=color)) + 
  geom_point() +
  scale_colour_gradientn(colors=c("yellow", "black", "orange"))

在此處輸入圖片說明

感謝您的幫助。

這對您有幫助嗎?

library(ggplot2)
group = c("gr1","gr1","gr1","gr1","gr1","gr1","gr1","gr1","gr1","gr1","gr2","gr2","gr2","gr2","gr2","gr2","gr2","gr2","gr2","gr2","gr3","gr3","gr3","gr3","gr3","gr3","gr3","gr3","gr3","gr3")
pos = c(1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10)
color = c(2,2,2,2,3,3,2,2,3,2,1,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,1,1,2,2)
df = data.frame(group, pos, color)
ggplot(data = df, aes(x = group, y = pos)) + geom_tile(aes(fill = color)) 

看起來像這樣 在此處輸入圖片說明

如果您願意,可提供帶有3種顏色漸變的改進版本

library(scales)
ggplot(data = df, aes(x = group, y = pos)) + geom_tile(aes(fill = color))+ scale_fill_gradientn(colours=c("orange","black","yellow"),values=rescale(c(1, 2, 3)),guide="colorbar")

第2版​​具有您選擇的3種顏色漸變

暫無
暫無

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

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