日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

双y轴如何合并图例_如何对图表批量组合、对齐、画中画、合并图例、自动化加标签。。。...

發(fā)布時(shí)間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 双y轴如何合并图例_如何对图表批量组合、对齐、画中画、合并图例、自动化加标签。。。... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
關(guān)于圖表的組合排版,在之前的微信文章中介紹過很多常規(guī)的方法,比如《繪制復(fù)雜組合圖表的獨(dú)家秘笈分享》、《如何用Graphpad Prism繪制超復(fù)雜組合圖?》、《如何用Origin完成圖表排版?》等。可是,有小伙伴就問了,正如小項(xiàng)羽所言,“劍一人敵,不足學(xué),學(xué)萬人敵”,那么有沒有批量自動(dòng)化拼圖的方法?既然是批處理,就免不了需要寫腳本,這里推薦兩個(gè)專職拼圖的R包:cowplot和patchwork,二者在很多地方都很相似,下面我們就一起比較、學(xué)習(xí)下如何使用這兩個(gè)R包實(shí)現(xiàn)圖表的批量組合、嵌套、對(duì)齊、畫中畫、自動(dòng)化加標(biāo)簽、圖例合并等操作。#先使用ggplot2繪制4個(gè)范例圖表,數(shù)據(jù)為R自帶的mtcars數(shù)據(jù)集;
library(ggplot2)
head(mtcars)

p1?p1p2?"skyblue")
p2
p3???theme(axis.text.x = element_text(size = 10, angle = 60, vjust = 0.5))
p3
p4?"skyblue") + facet_wrap(~cyl)
p4#載入patchwork包;library(patchwork)#載入cowplot包;library(cowplot)

整合多個(gè)圖表?

patchwork:#使用“+”操作符組合圖表;p?p

#patch可以自動(dòng)添加圖表標(biāo)簽;p+plot_annotation(tag_levels = 'A',tag_suffix='.')#tag_levels:'a' 小寫字母, 'A' 大寫字母, '1' 數(shù)字, 'i' 小寫羅馬數(shù)字, 'I' 大寫羅馬數(shù)字;#tag_prefix和tag_suffix設(shè)置序號(hào)的前后綴字符 ;

cowplot:#使用plot_grid()函數(shù)組合圖表;plot_grid(p1, p2, p3, p4)

#cowplot也可自動(dòng)添加編號(hào)標(biāo)簽;plot_grid(p1, p2, p3, p4,labels = "AUTO")#調(diào)整標(biāo)簽的字體大小(默認(rèn)14)、樣式、顏色等;plot_grid(p1, p2, p3, p4,labels = c('A.', 'B.','C.', 'D.'),label_size?= 12,label_fontfamily?= "serif",label_fontface?= "plain",label_colour?= "black")

通過比較組合效果可以發(fā)現(xiàn),默認(rèn)情況下,二者會(huì)保持拼圖結(jié)果為正方形;patchwork有自動(dòng)對(duì)齊圖形區(qū)域的功能,而cowplot的組合效果更緊湊。

指定排列順序

patchwork:#cowplot主要使用nrow 和 ncol兩個(gè)參數(shù)確定排列方式,并“逐行”填充;plot_grid(p1, NULL, p2,p3, ncol = 2,align = "hv")

cowplot:#cowplot主要使用nrow 和 ncol兩個(gè)參數(shù)確定排列方式:plot_grid(p1, NULL, p2,p3,labels = "AUTO", ncol = 2)

設(shè)置拼圖比例

patchwork:#設(shè)置寬高比例;pp?pp?+ plot_layout(widths = c(3, 1), heights = c(3,1))

cowplot:

#設(shè)置寬高比例;類似的使用rel_widths 和 rel_heights 設(shè)置圖表的相對(duì)大小;plot_grid(p2, p3, p1, NULL, rel_widths = c(1.5, 1),rel_heights=c(2,1))

嵌套拼圖

patchwork:patchwork提供了兩個(gè)操作符來直接實(shí)現(xiàn)不同圖表的嵌套拼接。#|:將這些圖橫向排列,/:將圖表豎向堆疊(豎排優(yōu)先級(jí)高于橫排);p1?| (p2 / p3)
(p2?| p3 )/ (p1 | plot_spacer())

cowplot:#“手工”嵌套;bottom_row?bottom_rowplot_grid(p1, bottom_row, ncol = 2)

指定對(duì)齊方式

patchwork:#拼圖時(shí)自動(dòng)對(duì)齊;p1?+ p2 + p3 + p4

#Tips:獲取維度信息;p3_dims?p1_aligned?p3p1_aligned#注意p1_aligned無法和其他圖表組合;cowplot:#使用plot_grid()函數(shù)的align參數(shù)使網(wǎng)格線和坐標(biāo)軸對(duì)齊;#可組合使用:align = "vh"` 或 `align = "hv"plot_grid(p1, p3, ncol = 2, align = "h")#垂直對(duì)齊失敗;plot_grid(p1, p3, nrow = 2, align = "v")#坐標(biāo)軸范圍不一致時(shí),可以對(duì)齊坐標(biāo)軸;#組合關(guān)系:"t" (top), "r" (right), "b" (bottom), and "l" (left);plot_grid(p1, p2, p3, p4, nrow = 2, align = "v", axis = "tlbr")

合并圖例

patchwork:#如果圖例顏色、樣式不同,會(huì)同時(shí)保留;p1?+ p2 + p3 + p4 +plot_layout(guides = 'collect')

(p2?/ p3 + plot_layout(guides = 'collect')) | p1
((p2?/ p3 + plot_layout(guides = 'auto')) | p1) + plot_layout(guides = 'collect')

默認(rèn)guides = 'auto',當(dāng)guides = 'collect'時(shí)合并圖例,當(dāng)guides = 'keep'時(shí)強(qiáng)制將圖例置于原圖旁。cowplot:#對(duì)于cowplot,需先繪制無圖例的組合圖;p3a?"none")
plot2?plot2

#提取圖例;
legend?#將圖例組合進(jìn)來;
plot_grid(plot2, legend, rel_widths = c(3, 0.5))

#同樣的方法,可以將圖例加到底部;legend_b?"bottom"))
plot_grid(plot2, legend_b, nrow = 2,rel_heights = c(3, 0.5))

畫中畫效果

patchwork:#inset_element()指定相對(duì)位置插入圖形;#align_to ='panel' (默認(rèn)), 'plot', 'full';p1?+ inset_element(p2, left = 0.6, bottom = 0.6, right = 1, top = 1,align_to?= 'panel', ignore_tag = TRUE)+theme_cowplot(10)#這里使cowplot的theme_cowplot()主題,字體為10號(hào);

cowplot:#先應(yīng)用主題;p2a?#使用draw_plot()函數(shù)在指定的位置添加圖形;ggdraw(p1) + draw_plot(p2a, x=0.58, y=0.58, width =0.4, height =0.4)

#可以加上標(biāo)簽;ggdraw(p1 +theme_half_open(14)) + draw_plot(p2a, x=0.58, y=0.58, width =0.4, height =0.4) +draw_plot_label(c("A", ""),c(0, 0.45),c(1, 0.95),size = 15)

通過對(duì)這兩個(gè)R包的拼圖方法和效果比較,我可能更喜歡patchwork的一些,操作簡單更容易上手,好啦,今天的內(nèi)容就分享到這里啦~

實(shí)用科研工具推薦? ? ??
詳實(shí)生信軟件教程分享
前沿創(chuàng)新組學(xué)文章解讀
獨(dú)家生信視頻教程發(fā)布

總結(jié)

以上是生活随笔為你收集整理的双y轴如何合并图例_如何对图表批量组合、对齐、画中画、合并图例、自动化加标签。。。...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。