【播资讯】柱状图-肿瘤某一指标的比较和GSVA结果展示
时间:2023-02-06 08:56:00 来源:哔哩哔哩
尔云间 一个专门做科研的团队
原创 小果 生信果
(资料图片)
本篇将介绍如何利用ggplot2绘制柱状图以清楚地展示各肿瘤某一指标的比较(如肿瘤缓解率)和GSVA分析结果。
1、肿瘤缓解率结果展示
首先启动程序包
library(ggplot2)
然后读取数据
df<-read.csv("easy_input1.csv")
数据结构如下图,为2列。第一列为不同癌症,第二列为score
按照score排序,并画图:
df<-df[order(df$score,decreasing = T),]df$index<-seq(1,nrow(df))p<-ggplot(df,aes(x=index,y=score,fill=ID)) + geom_bar(stat = 'identity',width = 0.8) + scale_fill_brewer(type = "Qualitative", palette = "Paired") + #bar的颜色 scale_y_continuous(breaks=seq(-100, 100, 10), #y轴刻度 expand = c(0,0)) + #上下都不留空 scale_x_discrete(expand = expand_scale(mult = c(0.01,0))) + #左边留空,右边到头 #画3条横线 geom_hline(yintercept = c(-30,0,20), linetype = 5, #画虚线 size = 0.3) + #线的粗细 #其他主题 labs(x = "", y = "Maximum Change in Tumor Size (%)", title = "A Maximum Change in Tumor Size, According to Tumor Type") + theme_bw() + #去除背景色 theme(panel.grid =element_blank()) + #去除网格线 theme(panel.border = element_blank()) + #去除外层边框 theme(axis.line = element_line(colour = "black")) + #沿坐标轴显示直线 theme(axis.line.x = element_blank(), axis.ticks.x = element_blank(), axis.text.x = element_blank()) + #去除x轴 #图例 guides(fill = guide_legend(ncol = 5,title = NULL)) + #图例分5列 scale_size(range=c(5,20)) + theme(legend.background = element_blank(), #移除整体边框 #图例的左下角置于绘图区域的左下角 legend.position=c(0,0),legend.justification = c(0,0)) #改用下面这行,图例就会位于顶部 #legend.position="top")
由于Cancer12值很高,使得图片右侧很空。对其进行修改,让y轴适合大部分数据,然后在最高的那个bar上标出实际数据。
#设置坐标轴范围,最大值设为50,以适应大多数数据P <- p + coord_cartesian(ylim = c(-90,50)) + #y轴范围,根据实际情况调整 #添加数据标签 geom_text(data = subset(df, score > 50), aes(index, 48,label=round(score))) + #在超过50的bar上标出实际数据 geom_text(data = subset(df, index == 3), aes(index, score + 1,label = "*")) + #作者的特殊标记 geom_text(data = subset(df, index == nrow(df)), aes(index, score - 3, label = "T")) #作者的特殊标记
2、GSVA结果展示
2.1 score绝对值小于阈值的bar显示为灰色
输入数据,包含两列:ID和score
df<-read.csv("easy_input2.csv")
按照score的值分组
df$group<-cut(df$score, breaks = c(-Inf,-4,4,Inf),labels = c(1,2,3))
按照score排序
df<-df[order(df$score,decreasing = F),]
df$index<-seq(1,nrow(df))
开始画图:
ggplot(df,aes(x=index,y=score,fill=group)) + geom_bar(stat = 'identity',width = 0.8) + scale_fill_manual(values = c("palegreen3","snow3","dodgerblue4")) + #bar的颜色 scale_x_discrete(expand = expand_scale(add = .6)) + scale_y_continuous(breaks=seq(-30, 20, 5)) + coord_flip() + #坐标轴互换 #画2条横线 geom_hline(yintercept = c(-4,4), color="white", linetype = 2,#画虚线 size = 0.3) + #线的粗细 #写label geom_text(data = subset(df, score > 0), aes(x=index, y=0, label=paste0(ID," "), color = group),#bar跟坐标轴间留出间隙 size = 3, #字的大小 hjust = "inward" ) + #字的对齐方式 geom_text(data = subset(df, score < 0), aes(x=index, y=0, label=paste0(" ",ID), color = group), size = 3, hjust = "outward") + scale_colour_manual(values = c("black","snow3","black")) + #其他主题 labs(x = "", y = "t value of GSVA score, tumor \n versus non-malignant", title = "Endothelial cells, tumour versus non-malignant") + theme_bw() + #去除背景色 theme(panel.grid =element_blank()) + #去除网格线 theme(panel.border = element_rect(size = 0.6)) + #边框粗细 theme(axis.line.y = element_blank(), axis.ticks.y = element_blank(), axis.text.y = element_blank()) + #去除y轴 guides(fill=FALSE,color=FALSE) #不显示图例
2.2 pvalue>0.05的bar显示为灰色
输入数据,包含三列,ID、score和pvalue
df<-read.csv("easy_input3.csv")
#按照pvalue分组
df$p.group<-cut(df$pval, breaks = c(-Inf,0.05,Inf),labels = c(1,0))
#按照score分组
df$s.group<-cut(df$score, breaks = c(-Inf,0,Inf),labels = c(0,1))
#合并
df$ps.group <- paste0(df$p.group,df$s.group)
#根据pvalue和score分为3组
df$group<-ifelse(df$ps.group=='10','1',ifelse(df$ps.group=='11','2','3'))
按照score排序
df<-df[order(df$score,decreasing = F),]
df$index<-seq(1,nrow(df))
开始画图:
只调整了颜色顺序,其余跟“2.1”的画图代码是一样的
scale_fill_manual(values = c("palegreen3","dodgerblue4","snow3")) + #颜色
推荐阅读
使用R语言完成序列比对及进化树美化
看小果演示CIBETSORT、xcell两种常用的R语言包
一步到位?R代码构建列线图
小果教你三分钟看懂多条线共存的ROC图的R语言画法
快速学习如何确定差异分析阈值来筛选差异基因
最新文章推荐
- 陕西7名核酸检测阳性外省游客活动轨迹公布
- 万人说新疆 | 棉花朵朵赛白云,阿克苏美出新高度!
- 万人说新疆 | 孙芳红:我在新疆每天过得很充实也很快乐
- 万人说新疆 | 棉农阿卜来提开心地笑了
- 万人说新疆 | 阿迪力的棉花合作社年入300万
- 四川乐山犍为县发生4.3级地震 无人员伤亡
- 西安全面开展排查管控 目前20481人核酸检测结果均阴性
- 陕西7名核检阳性者为一旅行团同行人员 活动轨迹公布
- 西安交大举行2021级本科生迎新会 校长:学习是主动作为之事
- 【母亲河畔的中国】黄河岸边的这个村庄如何打好旅游服务牌?
X 关闭
资讯中心

2022-08-17
2021-10-18

2021-10-18

2021-10-18
X 关闭
热点资讯
-
1
【播资讯】柱状图-肿瘤某一指标的比较和GSVA结果展示
-
2
可行性研究报告|焦点
-
3
燕无歇 原唱-世界视讯
-
4
每日简讯:与崔弇话别
-
5
环球看点!1680
-
6
国美所持中关村股份被强平1.03亿元,黄光裕不再是国美零售控股股东
-
7
风向袋的制作教学视频_风向袋的制作|焦点速讯
-
8
养颜红枣糕团购_养颜红枣糕
-
9
全球热资讯!东辽县安石镇第二中学校
-
10
每一幅画,都是美好的祝愿!展示:兔子的N种画法——
-
11
环球动态:武汉这两所新建小学将于今年9月开始招生
-
12
达诺夫神秘事件_达洛夫事件真的假的 环球视点
-
13
模型设计
-
14
中国反倾销政策实施效果评估体系与方法研究
-
15
电影春心荡漾-当前关注
-
16
女子摩托车被人“下猛药”,警方介入-全球热推荐
-
17
纳达尔尴尬了!近半数西班牙球迷投票德约科维奇为goat,无悬念?
-
18
世界微动态丨中国计算机年鉴2012
-
19
甄嬛传小游戏
-
20
【全球聚看点】国家广电智库:河北台《冀有好物》 搭融媒平台推荐家乡好物,创新公益助农助企新模式