在R中生成热图(多个自变量)

时间:2017-07-06 03:30:17

标签: r heatmap

有一些类似的问题,但他们并没有问我在寻找什么。 我有一个带有多个独立变量的基因表达数据。我想使用R中的热图将其可视化。我无法在热图上包含所有三个变量。以下是示例代码:

species <- rep(c("st", "rt"), each = 18)
life <- rep(c("5d", "15d", "45d"), 2, each = 6)
concentration <- rep(c("c1", "c2", "c3"), 6, each = 2)
gene <- rep(c("gene1", "gene2"), 36, each = 1)
response <- runif(36, -4, 4)
data1 <- data.frame(species, life, concentration, gene, response)

我愿意使用任何套餐。请参见下图来自不同数据集的图像。我希望以类似的方式可视化我的数据。

example_data_visualized

非常感谢提前!

1 个答案:

答案 0 :(得分:0)

我不确定代码中的哪些变量与图表中的哪个维度相对应,但使用ggplot2包时,它很容易实现:

library(ggplot2)

ggplot(data1, aes(x = factor(life, levels = c("5d", "15d", "45d")), 
                  y = concentration, 
                  fill = response)) + 
  geom_tile() + 
  facet_wrap(~species + gene, nrow = 1) + 
  scale_fill_gradient(low = "red", high = "green", guide = FALSE) + 
  scale_x_discrete(name = "life")

当然,您可以相应地调整标题,标签,颜色等。