跟着Nature Metabolism學作圖:R語言ggplot2分組折線圖添加誤差線

論文

Single-cell profiling of vascular endothelial cells reveals progressive organ-specific vulnerabilities during obesity

https://www.nature.com/articles/s42255-022-00674-x#Sec58

s42255-022-00674-x.pdf

https://github.com/Osynchronika/sc_EC_obesity_atlas

大部分 作圖的數據都有,可以試着用論文中提供的數據復現一下論文中的圖

今天的推文我們復現一下論文中的figure4c 分組折線圖並添加誤差線,並且在指定區域添加一個灰色背景

論文中提供的示例數據如下

手動整理成如下格式

加載作圖需要用到的R包

library(readxl)
library(tidyverse)
library(plotrix)
library(ggh4x)

讀取數據

dat<-read_excel("data/20230207/figure4c.xlsx")
dat

按照行計算平均值和標準誤

dat %>% 
  rowwise() %>% 
  mutate(mean_value=mean(c_across(rep1:rep4)),
         std_value=std.error(c_across(rep1:rep4))) %>% 
  filter(Weeks>=11)-> new.dat

作圖代碼

ggplot(data=new.dat,aes(x=Weeks,y=mean_value))+
  annotate(geom = "rect",xmin=22,xmax=27,ymin=-Inf,ymax=Inf,fill="gray")+
  geom_vline(xintercept = 22,lty="dashed",size=1,color="black")+
  geom_point(aes(color=group),size=3)+
  geom_line(aes(color=group),size=1)+
  scale_x_continuous(limits = c(10,27),
                     breaks = seq(10,25,5),
                     guide = "axis_minor",
                     minor_breaks = seq(11,27,1),
                     expand = expansion(mult=c(0,0.05)))+
  scale_y_continuous(limits = c(20,50),
                     breaks = seq(20,50,by=10),
                     expand=expansion(mult=c(0,0)))+
  guides(x=guide_axis_minor(trunc_upper = 27,
                            trunc_lower = 10))+
  geom_errorbar(aes(ymin=mean_value-std_value,
                    ymax=mean_value+std_value,
                    color=group),
                width=0.2,
                size=1)+
  scale_color_manual(values = c("WD"="#f68a15",
                                "Rev 3"="#008c00",
                                "Chow"="#094cc3"))+
  theme_classic()+
  theme(ggh4x.axis.ticks.length.minor= rel(0.5),
        axis.ticks.length.x = unit(0.5,'lines'),
        legend.position = "bottom")+
  labs(x="Age(weeks)",y=expression(Weight%+-%s.e.m.(g)))+
  annotate(geom = "text",x=27,y=41,label="P=0.003",hjust=1)+
  annotate(geom = "text",x=27,y=35,label="P=0.007",hjust=1)+
  coord_cartesian(clip="off")

做的最後才發現是用figure4d的數據做的圖,我說怎麼看起來和figure4c差的有點多

示例數據和代碼可以給推文點贊,然後點擊在看,最後留言獲取

歡迎大家關注我的公衆號

小明的數據分析筆記本

小明的數據分析筆記本 公衆號 主要分享:1、R語言和python做數據分析和數據可視化的簡單小例子;2、園藝植物相關轉錄組學、基因組學、羣體遺傳學文獻閱讀筆記;3、生物信息學入門學習資料及自己的學習筆記!

微信公衆號好像又有改動,如果沒有將這個公衆號設爲星標的話,會經常錯過公衆號的推文,個人建議將 小明的數據分析筆記本 公衆號添加星標,添加方法是

點開公衆號的頁面,右上角有三個點

點擊三個點,會跳出界面

直接點擊 設爲星標 就可以了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章