繁体   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