zl程序教程

您现在的位置是:首页 >  Java

当前栏目

详谈R中散点图添加误差线的细节

2023-02-18 16:38:01 时间

加载R包

library(tidyverse)
library(ggsci)

导入数据

df <- read_tsv("data.txt")

数据可视化

df %>% 
  ggplot(aes(case_control,logCPM)) +
  geom_jitter(aes(fill=case_control,color=case_control),
              pch=21,width=0.1,size=2)+
  stat_boxplot(geom="errorbar",width=0.1,linetype="solid")+ 
  stat_summary(geom="crossbar",fun="mean",width=0.2,linetype="solid")+
  facet_wrap(.~gene_id,scale="free")+
  labs(x=NULL,y=NULL)+
  scale_fill_nejm()+
  scale_color_nejm()+
  theme_test()+
  theme(legend.position = "none",
        panel.background= element_blank(),
        axis.line = element_line(color="black"),
        axis.ticks.y.right = element_blank(),
        axis.text.y.right = element_blank(),
        plot.title =  element_text(color="black",size=10,vjust = 0.5,hjust=0.5),
        axis.text = element_text(color = "black", face = "bold",size=8),
        strip.background = element_blank(),
        strip.text.x = element_text(color="black",face="bold",size=11))+
  guides(x.sex="axis",y.sec="axis")

代码解释

❝ggplot2 包创建了一个图表,通过“管道”操作符的 %>% 运算符将一系列修改图表的函数串联在一起。 ❞

df %>% ggplot(aes(case_control,logCPM))

❝使用 df 数据帧创建了一个新的 ggplot 对象,并将 x 轴和 y 轴变量分别设置为 case_control 和 logCPM。函数 aes() 指定数据帧中哪些列应用于图表美学。 ❞

geom_jitter(aes(fill=case_control,color=case_control), pch=21, width=0.1, size=2) 

❝向图表添加了一个抖动散点图。fill 和 color 美学设置为 case_control,这意味着点的填充和颜色将基于该列的值。参数 pch 指定点的形状,width 指定点的宽度,size 指定点的大小。 ❞

stat_boxplot(geom="errorbar", width=0.1, linetype="solid") 

❝使用函数 stat_boxplot 向图表添加了误差条。参数 geom 指定使用哪种误差条,参数 width 控制误差条的宽度。 ❞

stat_summary(geom="crossbar", fun="mean", width=0.2, linetype="solid")

❝向图表添加了一条水平线,以显示每个 case_control 级别的 logCPM 的平均值。参数 geom 指定几何对象。 ❞

自定义函数绘图

❝上方给出了该图像绘制的代码及解释,那么我们也可以将其写成一个函数使其居然通用性,下面针对会员朋友小编将介绍如何定义函数绘制此图,代码见会员群文档。 ❞