[英]Creating a heatmap using R
我想创建一个热图来显示我拥有的数据。 数据由 3 列和 100 行组成。 我使用以下代码在 R 中使用 ggplot 包创建热图。
x=c("x1","x2","x3")
y=paste0("var",seq(1,100))
datax=expand.grid(x,y)
datax$z=runif(300,0,5)
require(ggplot2)
ggplot(datax, aes(Var1, Var2, fill= z)) +
geom_tile()
我想让这个图表更漂亮。 即,这里每个单元格都有一个矩形形状。 如何使它显示为正方形? 还有没有办法删除行名并将列标题放在图的顶部?
谢谢
它们之所以是矩形,是因为y轴上的值很多,而x轴上的值很少。 如果您希望它们是方形的,您需要显式保存具有特定大小的图。
在ggplot
命令(没有+
)之后ggplot
运行它并使用width
和height
。 默认情况下,它将保存显示的最后一个图。
ggsave("filename.pdf", device = "pdf", width = <w>, height = <h>)
要获得顶部的 x 标签,请使用+ scale_x_discrete(position="top")
。 要完全删除 y 轴变量,请使用+ theme(axis.text.x=element_blank())
(均在 ggplot 调用之后)
其他想法:
geom_tile()
之后使用+ xlab(NULL) + ylab(NULL)
geom_tile()
x 和 y 标签var3
可用于对 y 轴进行子集化,您可以使用facet_wrap(~var3)
将巨大的热图分解为更小、更方形的热图
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.