跟着Nature Communications学作图:R语言ggplot2堆积柱形图组合饼状图


New estimates indicate that males are not larger than females in most mammal species

https://www.nature.com/articles/s41467-024-45739-5

数据下载链接

https://doi.org/10.5061/dryad.280gb5mx0

代码下载链接

https://zenodo.org/records/10569230

发现论文中的一个小错误:在代码获取链接的地方写的是代码存放在 zenodo这个网址,写的链接却是Dryad的链接,这个链接和数据存放链接是同一个链接。

图片
image.png

这个低级失误有点不应该了

这个论文的研究内容很有意思,论文的题目是说 新的估计数据显示,在大多数哺乳动物物种中,雄性并不比雌性体型更大。 在我之前的认知里一直是大部分的哺乳动物的雌性体型是大于雄性体型的。看到这个题目第一想法是为啥这个问题还需要研究。

摘要里写的是 自达尔文的《人类的由来及性选择》以来,人们普遍认为雄性哺乳动物体型较大是常态 原来自己之前认为的 哺乳动物的雌性体型是大于雄性体型的 是不对的,但是这种想法是怎么来的呢?

有时间仔细看看这篇论文的研究方法。今天的推文的主要内容是复现一下论文中的figure1

图片
image.png

部分示例数据截图

图片
image.png

饼状图的数据只有3个,是手动输入的

作图代码

library(tidyverse)

fig1.dat<-read_tsv("Figure1.tsv")
fig1.dat

fig1.1<-ggplot(fig1.dat, aes(x=Order, y=Num_Spp, fill=Dimorphism))+
  geom_col(position="stack")+
  ylab('Number of Species in Each Order')+
  xlab('Ordern(only orders with >=10 species shown)')+
  scale_fill_viridis(discrete=T, option="D", name='', 
                     labels=c('Larger Females', 'Larger Males', 'Same Size'),
                     alpha=0.8)+
  theme_bw()+
  theme(text=element_text(size=20), 
        axis.text.x=element_text(angle=90, size=15, vjust=0.5),
        legend.text=element_text(size=15),
        axis.title.y=element_text(size=15),
        axis.title.x=element_text(size=15),
        panel.grid = element_blank(),
        legend.position = c(0.15,0.9),
        legend.background = element_rect(fill=NA))

pie.dat<-data.frame(Morphism=c('Larger Males', 'Larger Females', 'Same Size'),
                    Rate=c(45, 16, 39))

fig1.2<-ggplot(pie.dat, aes(y=Rate, x="", fill=Morphism))+
  geom_bar(width = 1, stat="identity", alpha=0.7)+
  coord_polar("y", start=0)+
  scale_fill_viridis(discrete=T, option="D", name='')+
  xlab('')+
  ylab('')+
  geom_text(aes(y=c(67, 92, 23),
                label=paste0(Rate,'%')), col=c('black', 'black', 'black'), size=10)+
  theme_minimal()+
  theme(
    axis.title.x = element_blank(),
    axis.title.y = element_blank(),
    panel.border = element_blank(),
    panel.grid=element_blank(),
    axis.ticks = element_blank(),
    plot.title=element_text(size=14, face="bold"),
    axis.text.x=element_blank(),
    text=element_text(size=30),
    legend.position='none'
  )

library(ggpmisc)

fig1.1+
  geom_plot(data=tibble(x=2,y=3000,plot=list(fig1.2)),
            aes(x=x,y=y,label=plot),
            vp.width=0.8,vp.height=0.8)

欢迎大家关注我的公众号

小明的数据分析笔记本

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/413469.html

(0)
联系我们
联系我们
分享本页
返回顶部