前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >跟着Nature Microbiology学作图:R语言ggplot2做黑白格的热图

跟着Nature Microbiology学作图:R语言ggplot2做黑白格的热图

作者头像
用户7010445
发布2021-12-01 18:21:08
7490
发布2021-12-01 18:21:08
举报

本地文件 s41564-021-00997-7.pdf

论文

Protective role of the Arabidopsis leaf microbiota against a bacterial pathogen

image.png

今天的推文来重复一下论文中的figure6a

image.png

今天的推文先画黑白格的热图,关于添加线段注释和左侧的绿色热图放到下期推文介绍

首先是示例数据集

image.png

读取数据

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

df<-read_excel("41564_2021_997_MOESM14_ESM.xlsx",
               n_max = 40)

这里用到了n_max参数,是因为数据文件的结尾还有一行数据,这里我不想读入,最方便的办法是直接手动删掉,不想删就指定读取的行数

宽格式数据转换为长格式

代码语言:javascript
复制
df %>% 
  select(-Func_name) %>% 
  pivot_longer(!Func_id) -> dfa

赋予因子水平

代码语言:javascript
复制
dfa$Func_id<-factor(dfa$Func_id,
                    levels = df$Func_id)
dfa$name<-factor(dfa$name,
                 levels = rev(colnames(df)[3:16]))

dfa$value<-as.character(dfa$value)

dfa %>% 
  mutate(new_col=case_when(
    value == "0" ~ "0",
    value == "1" ~ "1",
    value == "2" ~ "2",
    value == "3" ~ ">2",
    value == "4" ~ ">2"
  )) %>%
  mutate(new_col=fct_relevel(new_col,c(0,1,2,">2")))-> dfb

最后是作图代码

代码语言:javascript
复制
library(ggplot2)

ggplot(data=dfb,aes(x=Func_id,y=name))+
  geom_tile(aes(fill=new_col),
            color="black")+
  theme_bw()+
  theme(panel.border = element_blank(),
        panel.grid = element_blank(),
        axis.title = element_blank(),
        #legend.title = element_blank(),
        axis.text.x = element_text(angle=90,vjust=0.5))+
  scale_fill_manual(values = c("#ffffff","#b8b8b8",
                               "#4b4b4b","#242424"))+
  labs(fill="Genes")

image.png

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小明的数据分析笔记本 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 论文
  • 首先是示例数据集
  • 读取数据
  • 宽格式数据转换为长格式
  • 赋予因子水平
  • 最后是作图代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档