前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nature genetics图表复现-自定义绘制散点图

nature genetics图表复现-自定义绘制散点图

作者头像
R语言数据分析指南
发布2022-12-20 19:49:52
4140
发布2022-12-20 19:49:52
举报

❝本节来复现「nature genetics」上的一张图,自定义绘制误差线图;下面小编就通过一个详细的案例介绍如何绘制此图;❞

图形展示

❝此图作为基础图形系列,但是又在基础图形的基础上做了一点细微的变化,如误差线不展示「ymin&ymax」因此直接添加几何对象完成不能实现,此外也通过自定义绘制线条来进行注释以及Y轴标题添加上标;那么小编下方案例代码就来简单介绍如何用代码来解决这三个问题 ❞

加载R包

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

导入数据

代码语言:javascript
复制
df1 <- read_excel("41588_2022_1184_MOESM5_ESM.xlsx",sheet = 4)

定义因子

代码语言:javascript
复制
df1$taxon <- factor(df1$taxon,levels=c("nicaraguensis","luxurians","diploperennis",
                                       "perennis","huehuetenangensis","mexicana",
                                       "parviglumis","TST","TEM"))

定义线条位置信息

代码语言:javascript
复制
p_value1 <- tibble(
  x = c("nicaraguensis","nicaraguensis","parviglumis","parviglumis"),
  y= c(7.8,7.8,7.8,7.8))

p_value2 <- tibble(
  x = c("perennis","perennis","TEM","TEM"),
  y=c(7.8,8.2,8.2,0.8))

p_value3 <- tibble(
  x = c("TST","TST","TEM","TEM"),
  y=c(0.7,0.7,0.7,0.7))

数据可视化

代码语言:javascript
复制
df1 %>% mutate(SNP=SNP/100000) %>% 
  ggplot(aes(taxon,SNP))+
  geom_jitter(width = 0.1,color="grey")+
#  stat_boxplot(geom = "errorbar", aes(ymin = ..ymax..),width=0.1) +
#  stat_boxplot(geom = "errorbar", aes(ymax = ..ymin..),width=0.1)+
  stat_boxplot(outlier.shape = NA,width=0,aes(color=taxon,fill=taxon),
               show.legend = F) + # 添加误差线
  stat_summary(aes(taxon,SNP,color=taxon,fill=taxon),pch=22,
               fun.y="mean",geom="point",size=4,
               show.legend = F)+ # 添加均值
  # 自定义绘制线条
  geom_line(data = p_value1,aes(x = x, y = y,group=1))+
  geom_line(data = p_value2,aes(x = x, y = y,group=1))+
  geom_line(data = p_value3,aes(x = x, y = y,group=1))+
  labs(x=NULL,y="Number of taxon-specific SNPs (x10<sup>5</sup>)")+
  scale_y_continuous(limits = c(0,8.5),breaks = seq(0,8.5,2.5))+
  scale_fill_npg()+
  scale_color_npg()+
  theme_classic()+
  theme(axis.text.x=element_text(angle = 90,vjust = 0.5,hjust=1,size=10,
                                 color="black",face="bold"),
        axis.text.y=element_text(size=10,color="black"),
        axis.title.y= element_markdown(color="black",size=11,face="bold",
                                       margin = margin(r=10)))+ 
  annotate("text",x =7,y =8.3,label="**",size = 6,color = "#22292F")
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-11-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言数据分析指南 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ❝本节来复现「nature genetics」上的一张图,自定义绘制误差线图;下面小编就通过一个详细的案例介绍如何绘制此图;❞
  • 图形展示
  • 加载R包
  • 导入数据
  • 定义因子
  • 定义线条位置信息
  • 数据可视化
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档