跟著Nature學作圖:R語言ggplot2簇狀柱形圖完整示例

論文

A global reptile assessment highlights shared conservation needs of tetrapods

https://www.nature.com/articles/s41586-022-04664-7#Sec33

數據代碼鏈接

https://github.com/j-marin/Global-reptile-assessment-

今天的推文學習一下推文中的Figure 3的簇狀柱形圖,沒有找到論文中的作圖代碼,但是找到了原始數據集,有了原始數據集就可以自己寫代碼來做這個圖

image.png

部分示例數據集

image.png

加載需要用到的R包

library(readxl)
library(ggplot2)
library(tidyverse)
library(patchwork)

Figure 3a

dat01<-read_excel("data/20220630/41586_2022_4664_MOESM4_ESM.xlsx",
                  sheet = "Fig 3a")

head(dat01)
dim(dat01)



dat01$Threat<-factor(dat01$Threat,
                     levels = dat01$Threat %>% unique())

ggplot(data=dat01,aes(x=Threat,y=n,fill=className))+
  geom_bar(stat="identity",position = "dodge")+
  theme_classic()+
  geom_vline(xintercept = 5.5,lty="dashed")+
  geom_vline(xintercept = 9.5,lty="dashed")+
  annotate(geom = "text",x=2.5,y=0.9,label="Habitat destruction")+
  annotate(geom = "text",x=7.5,y=0.9,label="Habitat change")+
  annotate(geom = "text",x=11,y=0.9,label="Other")+
  theme(legend.position = "bottom",
        axis.text.x = element_text(angle=60,hjust = 1,vjust = 1),
        legend.title = element_blank())+
  labs(x=NULL,y="Species threatened (%)")+
  scale_fill_manual(values = c("#936eaa","#401f51",
                               "#5f6798","#de6eaa"))+
  scale_y_continuous(labels = function(x){x*100}) -> p1

p1
image.png

Figure 3b

和Figure 3a是一樣的,唯一的區別是配色不一樣

dat02<-read_excel("data/20220630/41586_2022_4664_MOESM4_ESM.xlsx",
                  sheet = "Fig 3b")

head(dat02)
dim(dat02)

dat02$Threat<-factor(dat02$Threat,
                     levels = dat02$Threat %>% unique())

ggplot(data=dat02,aes(x=Threat,y=n,fill=className))+
  geom_bar(stat="identity",position = "dodge")+
  theme_classic()+
  geom_vline(xintercept = 5.5,lty="dashed")+
  geom_vline(xintercept = 9.5,lty="dashed")+
  annotate(geom = "text",x=2.5,y=0.9,label="Habitat destruction")+
  annotate(geom = "text",x=7.5,y=0.9,label="Habitat change")+
  annotate(geom = "text",x=11,y=0.9,label="Other")+
  theme(legend.position = "bottom",
        axis.text.x = element_text(angle=60,hjust = 1,vjust = 1),
        legend.title = element_blank())+
  labs(x=NULL,y="Species threatened (%)")+
  scale_fill_manual(values = c("#4868af","#e41f24",
                               "#edb91d","#973692"))+
  scale_y_continuous(labels = function(x){x*100}) -> p2

p2
image.png

最后是拼圖

p1/p2 + plot_annotation(tag_levels = "a")
image.png
image.png

論文中的figure4也是簇狀柱形圖,感興趣的可以自己試著復現一下

示例數據和代碼可以自己到論文中獲取,或者給本篇推文點贊,點擊在看,然后留言獲取

歡迎大家關注我的公眾號

小明的數據分析筆記本

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

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容