跟着Nature Communications学作图 -- 复杂
2023-03-26 本文已影响0人
生信师兄
跟着Nature Communication学作图 -- 复杂百分比柱状图.png
从这个系列开始,师兄就带着大家从各大顶级期刊中的Figuer入手,从仿照别人的作图风格到最后实现自己游刃有余的套用在自己的分析数据上!这一系列绝对是高质量!还不赶紧点赞+在看,学起来!
参考文献本期分享的是Nature Communication上面一篇文章中的一个美化的箱线图!
话不多说,直接上图!
读图
原图这张图理解起来没什么复杂的,但是有些细节还是值得大家好好学习的,例如:
- 图例位置的调整
- 主题的调整:网格线、边框颜色、坐标轴刻度、坐标轴字体等
- 注释添加
效果展示
效果展示本次复现完美的解决了上述所有难点,且均通过R语言完成!大家可以放心食用!
数据构建
# 加载R包:
library(ggplot2)
# 构建示例数据:
data <- data.frame(
Gene = paste0("Cancer", 1:21),
Log2FC = c(runif(15, -0.5,0), runif(6, 0, 0.5)),
"Log10qvalue" = c(runif(6, 1, 3),runif(15, 0, 1)))
# 查看数据:
head(data)
# Gene Log2FC Log10qvalue
# 1 Cancer1 -0.18511148 2.634901
# 2 Cancer2 -0.13808342 1.939038
# 3 Cancer3 -0.30934002 2.632905
# 4 Cancer4 -0.04036049 1.911711
# 5 Cancer5 -0.04722910 1.024237
# 6 Cancer6 -0.18350572 1.759855
绘图代码
ggplot(data)+
# 竖线:
geom_hline(yintercept = c(-log2(1.2), -log2(1.5)),
color = "grey", linetype = "dotted")+
# 柱状图
geom_col(aes(x = reorder(Gene, Log2FC), y = Log2FC, fill = Log10qvalue),
color = "grey")+
# 黑线:
geom_hline(yintercept = 0, color = "black")+
# 渐变颜色填充:
scale_fill_gradientn(name="-Log10_\nq-value", # 修改图例标题
colours = c("#f6fafd", "#c8dfef", "#6fa6d1", "#2c49a2"),
breaks = 0:3,
labels = paste0(0:3, ".0"))+
# 坐标轴标题:
xlab("")+
ylab("Log2FC(9p21-Loss vs .9p21-WT)")+
# 增大边缘柱形与边框的距离
scale_x_discrete(expand = c(0.05, 0.05))+
# 注释:
annotate(geom = "text", y = -0.5, x = 21, label = "FC<-1.2")+
# 标题:
ggtitle("TCR shannon entroy")+
# 坐标轴翻转:
coord_flip()+
# 主题:
theme_light()+
theme(panel.grid = element_blank(), # 去掉网格线
plot.title = element_text(hjust = 0.5, face = "bold"), # 标题居中、字体
axis.ticks.y = element_blank(), # 去掉y轴刻度线
axis.title.x = element_text(size = 10), # x轴标题大小
axis.text.y = element_text(size = 10), # y轴刻度大小
panel.border = element_rect(color = "black"),
legend.position=c(0.9,0.1), legend.justification=c(1,0)) # 图例位置
# 保存
ggsave("barplot.pdf", height = 5, width = 4)
结果展示
结果展示示例数据和代码获取
以上就是本期的全部内容啦!欢迎点赞,点在看!师兄会尽快更新哦!制作不易,你的打赏将成为师兄继续更新的十足动力!