封面
從這個系列開始,師兄就帶著大家從各大頂級期刊中的Figuer入手症概,從仿照別人的作圖風格到最后實現(xiàn)自己游刃有余的套用在自己的分析數(shù)據(jù)上蕾额!這一系列絕對是高質(zhì)量!還不趕緊點贊+在看彼城,學起來诅蝶!
參考文獻
本期分享的是昨天更新的Nature Medicine上面那篇文章中的一個箱線圖和散點圖。
之所以講這張圖是因為這張圖既通過散點圖描繪了兩組樣本點的分布差異募壕,同時在X和Y兩個尺度上分別繪制箱線圖调炬,既反映了兩組在X和Y兩個尺度上的顯著差異,也更好的闡述了X和Y的相關(guān)關(guān)系舱馅。此外箱線圖還加上了連線缰泡,顯示出了從術(shù)后1天,到術(shù)后3個月的變化趨勢代嗤,非常好的呈現(xiàn)方式棘钞,值得大家學習缠借!
示例數(shù)據(jù)和代碼獲取
https://mp.weixin.qq.com/s/sPi2GxZeDpDjLpcXlPzsvw
讀圖
原圖
這張圖通過廣義估計方程(GEE)分析,發(fā)現(xiàn)在袖狀胃切除(SG)治療后B. thetaiotaommicron豐度的增加與BMI的下降相關(guān)宜猜。
效果預覽
復現(xiàn)效果
示例數(shù)據(jù)和R包載入
# 加載包:
library(ggplot2)
# 讀取數(shù)據(jù):
new_data <- read.csv("data01.csv")
> new_data
Bacteroides_thetaiotaomicron BMI group group2
1 -13.36254 3.941414 group_0M sample1
2 -16.49327 3.927730 group_0M sample2
3 -15.85773 3.692952 group_0M sample3
4 -16.86678 3.948474 group_0M sample4
5 -15.57506 3.579352 group_0M sample5
6 -12.02062 3.759882 group_0M sample6
7 -16.75177 4.155833 group_0M sample7
8 -15.62603 4.045753 group_0M sample8
9 -13.00599 3.570529 group_0M sample9
10 -15.37026 3.522664 group_0M sample10
11 -14.68648 3.931393 group_0M sample11
12 -13.89668 3.971936 group_0M sample12
13 -16.94041 3.505565 group_0M sample13
14 -15.68604 4.082791 group_0M sample14
15 -13.40720 4.124388 group_0M sample15
繪制
- 首先繪制最中間的散點圖:
# 繪制散點圖:
ggplot(new_data)+
# 繪制基本散點圖
geom_point(aes(Bacteroides_thetaiotaomicron, BMI,color=group))+
# 設(shè)置顏色
scale_color_manual(values = c(group_0M="#ff00ff", group_3M="#8ac53e"))+
# 設(shè)置主題
theme_classic()+
# 設(shè)置坐標軸范圍
scale_x_continuous(breaks = c(-17:11))+
scale_y_continuous(breaks = seq(3.2,4.0,0.2))+
# 設(shè)置x軸和y軸標簽
xlab("Bacteroides thetaiotaomicron (11021)")+
ylab("BMI(lg)")+
# 去掉圖例:
theme(legend.position = 'none')
ggsave(filename = "scatter_plot.pdf",height=5,width = 5)
散點圖
- 再繪制左邊的箱線圖
# 繪制左邊的箱線圖:
ggplot(new_data,aes(group, BMI))+
# 加上誤差棒泼返;由于自帶的箱形圖沒有胡須末端沒有短橫線,使用誤差條的方式補上
stat_boxplot(geom = "errorbar",width=0.15,aes(color=group))+
# 繪制基本箱線圖
geom_boxplot(aes(color=group),fill="white")+
# 加上散點之間的連線
geom_line(aes(group=group2), color="black",linetype="dashed",size=0.2, alpha=0.8)+
# 箱線圖加散點
geom_jitter(aes(color=group,fill=group),width =0.05,shape = 21)+ #設(shè)置為向水平方向抖動的散點圖姨拥,width指定了向水平方向抖動绅喉,不改變縱軸的值
# 設(shè)置顏色
scale_color_manual(values = c(group_0M="#ff00ff", group_3M="#8ac53e"))+
scale_fill_manual(values = c(group_0M="#ff00ff", group_3M="#8ac53e"))+
# 設(shè)置主題
theme_classic()+
# 設(shè)置坐標軸范圍
scale_x_discrete(labels=c("0M","3M"))+
scale_y_continuous(breaks = seq(3.2,4.0,0.2))+
# 設(shè)置x軸和y軸標簽
xlab("")+
ylab("")+
# 去掉圖例:
theme(legend.position = 'none')
ggsave(filename = "left_boxplot.pdf",height=5,width = 2)
左側(cè)箱線圖
- 最后繪制下方的箱線圖
# 繪制下面的箱線圖:
ggplot(new_data,aes(group, Bacteroides_thetaiotaomicron))+
# 加上誤差棒;由于自帶的箱形圖沒有胡須末端沒有短橫線叫乌,使用誤差條的方式補上
stat_boxplot(geom = "errorbar",width=0.15,aes(color=group))+
# 繪制基本箱線圖
geom_boxplot(aes(color=group),fill="white")+
# 加上散點之間的連線
geom_line(aes(group=group2), color="black", linetype="dashed", size=0.2, alpha=0.8)+
# 箱線圖加散點
geom_jitter(aes(color=group,fill=group),width =0.05,shape = 21)+ #設(shè)置為向水平方向抖動的散點圖柴罐,width指定了向水平方向抖動,不改變縱軸的值
# 設(shè)置顏色
scale_color_manual(values = c(group_0M="#ff00ff", group_3M="#8ac53e"))+
scale_fill_manual(values = c(group_0M="#ff00ff", group_3M="#8ac53e"))+
# 設(shè)置主題
theme_classic()+
# 設(shè)置坐標軸范圍
scale_x_discrete(labels=c("0M","3M"))+
scale_y_continuous(breaks = c((-17):(-11)))+
# 設(shè)置x軸和y軸標簽
xlab("")+
ylab("")+
# 去掉圖例
theme(legend.position = 'none')+
# 旋轉(zhuǎn)坐標軸
coord_flip()
ggsave(filename = "down_boxplot.pdf",height=2,width = 5)
下方箱線圖
- 最后综芥,用AI將三個圖拼接在一起就完事啦丽蝎!
結(jié)果展示
復現(xiàn)效果