首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单热图中两种类型的变量(使用R)

单热图中两种类型的变量(使用R)
EN

Stack Overflow用户
提问于 2018-08-04 17:52:59
回答 2查看 1.6K关注 0票数 0

我必须绘制免疫动物的数据,以可视化可能的相互关系,在保护。作为背景,当我们给动物接种疫苗时,它会产生抗体,这种抗体可能与保护有关,也可能不相关。用9种不同的蛋白质免疫牛,测定抗体滴度达1.5 (光学密度(O.D.))。我们还测量了高达5000的滴答量。每种动物对每种蛋白质都有不同的效价和不同的蜱载,也许某些蛋白质对保护作用比其他蛋白质更重要,我们认为热图可以说明这一点。

TL;DR:绘制一个热图,其中一个变量(滴答)从6到5000,另一个变量(Prot1到Prot9)上升到1.5。

我的数据样本:

代码语言:javascript
复制
Animal  Group   Ticks   Prot1   Prot2   Prot3   Prot4   Prot5   Prot6   Prot7   Prot8   Prot9
G1-54-102   control 3030    0.734   0.402   0.620   0.455   0.674   0.550   0.654   0.508   0.618
G1-130-102  control 5469    0.765   0.440   0.647   0.354   0.528   0.525   0.542   0.481   0.658
G1-133-102  control 2070    0.367   0.326   0.386   0.219   0.301   0.231   0.339   0.247   0.291
G3-153-102  vaccinated  150 0.890   0.524   0.928   0.403   0.919   0.593   0.901   0.379   0.647
G3-200-102  vaccinated  97  1.370   0.957   1.183   0.658   1.103   0.981   1.051   0.534   1.144
G3-807-102  vaccinated  606 0.975   0.706   1.058   0.626   1.135   0.967   0.938   0.428   1.035

我对R知之甚少,但我真的很兴奋能学到更多。因此,请随意放置任何您想要的代码,我将尽力理解它。

提前谢谢你。路易斯

EN

回答 2

Stack Overflow用户

发布于 2018-08-04 18:05:49

下面是使用ggplot2包创建热图的一个选项。您需要将数据帧从宽格式转换为长格式。如果数字是离散的,将Ticks列从数字转换为因子也很重要。

代码语言:javascript
复制
library(tidyverse)
library(viridis)

dat2 <- dat %>%
  gather(Prot, Value, starts_with("Prot"))

ggplot(dat2, aes(x = factor(Ticks), y = Prot, fill = Value)) +
  geom_tile() +
  scale_fill_viridis()

数据

代码语言:javascript
复制
dat <- read.table(text = "Animal  Group   Ticks   Prot1   Prot2   Prot3   Prot4   Prot5   Prot6   Prot7   Prot8   Prot9
'G1-54-102'   control 3030    0.734   0.402   0.620   0.455   0.674   0.550   0.654   0.508   0.618
'G1-130-102'  control 5469    0.765   0.440   0.647   0.354   0.528   0.525   0.542   0.481   0.658
'G1-133-102'  control 2070    0.367   0.326   0.386   0.219   0.301   0.231   0.339   0.247   0.291
'G3-153-102'  vaccinated  150 0.890   0.524   0.928   0.403   0.919   0.593   0.901   0.379   0.647
'G3-200-102'  vaccinated  97  1.370   0.957   1.183   0.658   1.103   0.981   1.051   0.534   1.144
'G3-807-102'  vaccinated  606 0.975   0.706   1.058   0.626   1.135   0.967   0.938   0.428   1.035",
                  header = TRUE, stringsAsFactors = FALSE)
票数 1
EN

Stack Overflow用户

发布于 2018-08-05 11:35:22

在最新版本的ggplot2 / tidyverse中,您甚至不需要显式加载viridis-package。该量表通过scale_fill_viridis_c()包括在内。令人兴奋的时刻!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51688222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档