场景:有药物协同作用数据展示的需求
A药和B药的不同浓度梯度加药后,获得了IC50的数据,需要绘制一张协同作用的热图。
数据:整理成三列
将数据整理成为三列,第一列A药浓度,第二列B药浓度,第三列IC50
如果是A药浓度在横坐标,B药在纵坐标,需要将这种宽矩阵(例如R包里面的火山数据集)。在这种情况下,您需要使用tidyr包的gather()函数对其进行整理,以使用ggplot对其进行可视化。
# 安装包
# install.packages("tidyverse")
library(tidyverse)
# 火山数据集
#volcano
volcano %>%
# Data wrangling
as_tibble() %>%
rowid_to_column(var="X") %>%
gather(key="Y", value="Z", -1) %>%
# Change Y to numeric
mutate(Y=as.numeric(gsub("V","",Y))) %>%
# Vis
ggplot(aes(X, Y, fill= Z)) +
geom_tile() +
labs(x="A_Drug",y="B_Drug")+
theme_minimal()+
theme(legend.position="none")
祝科研顺利。
欢迎关注<图代码>公众号,将持续推送科研作图。