R绘图|转录组上游分析结果可视化-双向柱状图
2022-04-27 本文已影响0人
小汪Waud
整理毕业论文数据的时候,想将RNA-seq上游的一些分析结果可视化,主要是比对和定量的结果,通过图表展示反而没有那么直观,经过一番摸索,最后画出了下面的图。
如有问题,请多多指教!
准备数据
我的数据是4个不同处理,分别为HNa、HTa、THa、TNa,每个处理3个重复,想要同时展示Mapped和Assigned率。
首先我们先给数据加上分组信息,便于后续作图。
把数据放到放到txt中(其他格式文件也可以,看个人习惯),去掉百分号并保存为maprate.txt。
作图
1 读入数据并处理
maprate <- read.csv('maprate.txt',header = T,sep = "") # 数据读取
maprate$Assigned=maprate$Assigned*-1 # 将Assigned变成负值
library(reshape2)
longdata <- melt(maprate) # 宽数据转长数据
2 作图
library(ggplot2)
ggplot(longdata, aes(SampleName, value, fill = Group)) +
geom_col(position = position_dodge(width = 0.5),
width = 0.5, size = 0.3, colour = 'black') + # 柱形图绘制
theme_classic()+ # 主题设置
3 美化
我们来加亿点点细节。
library(ggplot2)
library(ggsci)
library(ggbreak)
ggplot(longdata, aes(SampleName, value, fill = Group)) +
geom_col(position = position_dodge(width = 0.5),
width = 0.5, size = 0.3, colour = 'black') + # 柱形图绘制
theme_classic()+ # 主题设置
scale_fill_npg()+ # 颜色设置
labs(x = 'Sample Name', y = 'Rate(%)') + #设置坐标轴标签
scale_y_break(c(-70, 95), scales = 1.5) + # 坐标轴截断
theme(axis.text = element_text(size = 12)) + # 修改字体大小
theme(axis.title = element_text(size = 14))+
annotate('text',label = 'Mapped', 2, 96,size=6) + # 修改标签位置和大小
annotate('text',label = 'Assigned', 2, -79,size=6)+
scale_y_continuous(breaks = seq(-90, 100, 1),
labels = as.character(abs(seq(-90, 100, 1))),
limits = c(-89, 98)) # 截断的数值显示
现在已经好很多了,不过还是不够好看,不妨通过eoffice将图导入到PPT进行微调。
topptx(filename = "test.pptx",width = 8,height = 6)
在工作目录中找到test.pptx,取消图形的组合。
我对其进行以下操作
- 去掉右侧多余的坐标轴
- 调整左侧Y轴点的个数
- 添加截断标志和0线
- 调整字体为Times New Roman,颜色为黑色,部分加粗
- 加红框突出
- 其他微调
最终图如下:
向公众号发送20220427即可获得示例数据和全部已注释代码。如果对你有一点点帮助,欢迎点击下方的【喜欢作者】!
参考资料:
- 《R 中的 scale_y_continuous 函数》https://www.delftstack.com/zh/howto/r/scale_y_continuous-in-r/
- 《ggbreak:你们要的坐标轴截断,它来了》https://mp.weixin.qq.com/s/l98Pfk4xPykWWuIJs7katw
- 《R语言绘制双向柱状图示例》https://mp.weixin.qq.com/s/trx2tKt-EV4n7W2xs20lAg