R语言ggplot2画Graphpad风格柱状图

R语言ggplot2画Graphpad风格柱状图
2024-11-07

结果图预览


Bar ,显著性标记
Bar,显著性标记,数据点

第一张柱状图 含Bar ,显著性标记

数据含有均值,方差和重复数,用于显著性判断和标记
代码如下:

library(ggplot2)
library(ggsignif)

# Graphpad风格 绘图 柱状图 
# 去掉右上边框,坐标轴贴紧,上部多留10%空间,或者根据Y轴最大值调整
# 刻度线,轴文本,轴标题,字体改为Arial 或者 serif
# 轴标题 位移合适
# 去掉填充,柱子border加粗为2, 显示有缺口,保存为jpg有渐变,保存为PDF正常
# 加Errorbar 颜色,上下,宽度稍大,加粗
# 标记两组的显著性差异,width=0.35, size=1,y_positon=9

df <- read.csv("IL-1.csv",sep = ",")
df$sample <- factor(df$sample,levels = c("Mock","placebo","M15","R40","R40_M15"))
df$SD
df

ggplot(df,aes(x=sample,y=mean))+
  geom_col(aes(color=sample),alpha=0,width = 0.6,size=1)+
  scale_y_continuous(expand = c(0,0),limits = c(0,10))+
  theme_classic()+
  theme(axis.ticks.length = unit(.25, "cm"),axis.line = element_line(linewidth = 0.8),
        axis.ticks = element_line(linewidth = 0.8,),
        axis.text = element_text(size = 16,color = "black"),
        # axis.title = element_text(size = 25),
        axis.title.x = element_text(vjust = 0,size=20),
        axis.title.y = element_text(vjust = 0,size=20),
        axis.text.x = element_text(angle = 45,vjust = 1,hjust = 1),
        plot.margin = margin(1,1,1,1, unit = "cm"),text = element_text(family="Arial"))+
  geom_point()+
  geom_errorbar(aes(ymax=mean+SD,ymin=mean-SD),width = 0.35,size=1)+
  geom_signif(data=df,stat="signif",position="identity",
              comparisons=list(c("Mock","R40_M15")),map_signif_level = TRUE,annotations="***")+
  geom_signif(data=df,stat="signif",position="identity",
              comparisons=list(c("placebo","R40_M15")),map_signif_level = TRUE,annotations="***",y_position = 9)+
  labs(
    x="Group",     # x轴名称
    y="Relative mRNA fold change",     # y轴名称
    title="CRISPR ISG Top20"  # 标题名称
  )+
  geom_vline(xintercept = 0,linewidth=1)

"IL-1.csv"内容如下:

sample,mean,SD,N
placebo,5.82,0.470749302,3
R40,7.13,1.188359736,3
M15,4.09,0.347895726,3
R40_M15,2.32,0.386775064,3
Mock,1,0,3

第二张柱状图 含Bar,显著性标记,数据点

数据含有三个重复的原始数据,代码会计算均值和方差,用于显著性判断和标记
代码如下:

df1 <- read.csv("ccl2.csv",  
                 header = TRUE) 
df1
# df1$sample <- factor(df$sample,levels = c("placebo","R40","M15","R40_M15","Mock"))
ldf <- split(df1,f = df1$sample)
ldf
for (i in 1:length(ldf)) {
  ldf[[i]]$mean = rep(mean(ldf[[i]]$count),length(ldf[[i]]$count))
  ldf[[i]]$SD = rep(sd(ldf[[i]]$count),length(ldf[[i]]$count))
}

dftt= ldf[[1]]
for (i in 2:length(ldf)) {
  dftt <- rbind(dftt,ldf[[i]])
}

dftt
# dftt$sample <- factor(df$sample,levels = c("placebo","R40","M15","R40_M15","Mock"))


ggplot(dftt,aes(x=sample,y=count))+
  geom_bar(aes(x=sample,y=count,color=sample),stat = "summary",fun=median,alpha=0,width = 0.6,size=2)+
  geom_jitter(width = 0.15,height=2,size=5,color="black",shape=16)+
  geom_errorbar(aes(ymax=mean+SD,ymin=mean-SD),width = 0.35,size=1)+
  scale_y_continuous(expand = c(0,0),limits = c(0,max(dftt$count)+0.2*max(dftt$count)))+
  theme_classic()+
  theme(axis.ticks.length = unit(.25, "cm"),axis.line = element_line(linewidth = 0.8),
        axis.ticks = element_line(linewidth = 0.8,),
        axis.text = element_text(size = 20,color="black"),
        axis.title = element_text(size = 25,color = "black"),
        axis.title.x = element_text(vjust = -2),
        axis.title.y = element_text(vjust = 3),
        axis.text.x = element_text(angle = 45,vjust = 1,hjust = 1),
        plot.title = element_text(hjust=0.5,size=20),
        plot.margin = margin(1,1,1,1, unit = "cm"),text = element_text(family="Arial"))+
  geom_signif(data=dftt,stat="signif",position="identity",
              comparisons=list(c("Mock","R40_M15")),map_signif_level = TRUE,annotations="***",size=1,textsize=12)+
  scale_x_discrete(limits = factor(c("placebo","R40","M15","R40_M15","Mock")))+
  labs(
    x="Group",     # x轴名称
    y="Related mRNA fold change",     # y轴名称
    title=paste0("IL1","——表达")  # 标题名称
  )

"ccl2.csv"文件内容如下:

sample,count
placebo,884.87
placebo,520
placebo,430
R40,693.05
R40,375
R40,431
M15,271.09
M15,237
M15,327
R40_M15,149.18
R40_M15,201
R40_M15,102
Mock,1
Mock,1
Mock,1
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容