我必须绘制免疫动物的数据,以可视化可能的相互关系,在保护。作为背景,当我们给动物接种疫苗时,它会产生抗体,这种抗体可能与保护有关,也可能不相关。用9种不同的蛋白质免疫牛,测定抗体滴度达1.5 (光学密度(O.D.))。我们还测量了高达5000的滴答量。每种动物对每种蛋白质都有不同的效价和不同的蜱载,也许某些蛋白质对保护作用比其他蛋白质更重要,我们认为热图可以说明这一点。
TL;DR:绘制一个热图,其中一个变量(滴答)从6到5000,另一个变量(Prot1到Prot9)上升到1.5。
我的数据样本:
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知之甚少,但我真的很兴奋能学到更多。因此,请随意放置任何您想要的代码,我将尽力理解它。
提前谢谢你。路易斯
发布于 2018-08-04 18:05:49
下面是使用ggplot2包创建热图的一个选项。您需要将数据帧从宽格式转换为长格式。如果数字是离散的,将Ticks列从数字转换为因子也很重要。
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()

数据
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)发布于 2018-08-05 11:35:22
在最新版本的ggplot2 / tidyverse中,您甚至不需要显式加载viridis-package。该量表通过scale_fill_viridis_c()包括在内。令人兴奋的时刻!
https://stackoverflow.com/questions/51688222
复制相似问题