当前位置: 首页 > news >正文

湖北网站科技建设莫停之科技windows优化大师

湖北网站科技建设,莫停之科技windows优化大师,好的宠物网站模板,政府蒙文网站建设情况专注系列化、高质量的R语言教程推文索引 | 联系小编 | 付费合集patchwork是ggplot绘图系统的拓展包,主要功能是将多个ggplot格式的图形组合成一幅大图,即组图。patchwork工具包十分好用,它主要利用几个类似四则运算符号的操作符进行组图&…

专注系列化高质量的R语言教程

推文索引 | 联系小编 | 付费合集


patchwork是ggplot绘图系统的拓展包,主要功能是将多个ggplot格式的图形组合成一幅大图,即组图。

patchwork工具包十分好用,它主要利用几个类似四则运算符号的操作符进行组图,只要掌握每个操作符的功能特点及少量函数的用法,就可以很灵活地进行组图。

本篇目录如下:

  • 0 示例图形

  • 1 竖杠`|`和斜杠`/`

    • 1.1 单独运算

    • 1.2 混合运算

  • 2 加号`+`

    • 2.1 单独运算

    • 2.2 plot_layout函数(上)

    • 3.3 混合运算

  • 3 减号`-`

    • 3.1 单独运算

    • 3.2 混合运算

0 示例图形

首先,参考官方文档[1],生成如下4个ggplot对象:

library(ggplot2)
p1 <- ggplot(mtcars) + geom_point(aes(mpg, disp*100)) + ggtitle('Plot 1')p2 <- ggplot(mtcars) + geom_point(aes(mpg, wt)) + ggtitle('Plot 2')p3 <- ggplot(mtcars) + geom_point(aes(hp, wt, colour = mpg)) + ggtitle('Plot 3')p4 <- ggplot(mtcars) + geom_bar(aes(gear)) + facet_wrap(~cyl) + ggtitle('Plot 4')

1 竖杠|和斜杠/

patchwork工具包最基础的操作符应当是加号+,这也是继承ggplot2工具包的符号,不过竖杠|和斜杠/的功能相对单纯,因此首先加以介绍。

在R语言的基础语法中,竖杠|表示逻辑“或”,斜杠/ 表示“除法”,但在这里它们被赋予了另外的功能:竖杠|表示横向组图,斜杠/表示纵向组图。

1.1 单独运算

分别使用|/进行组图:

library(patchwork)
p1 | p2 | p3
1c04975ff2d816240a3ffa5102afe7a6.png
p1 / p2 / p3
8ab2feecde888c70387b11913ab608f2.png

通过观察组图结果,可以发现一个特点:这两个操作符会为每个图形的plot region平均分配空间。

在推文graphics | 基础绘图系统(二)—— 绘图参数及par函数中,学堂君介绍了基础绘图系统的图形共存在4个区域,这里再展示一下:

961124d2adae84ed5329050b289e05f7.png

但在默认情况下,device region、display region的边界会与figure region重叠,也就是外侧三个区域实际上是重合的,因此图形区域主要存在plot region和figure region的区别。

明白几个区域的概念,现在再来分析组图结果:

  • p1的纵坐标刻度标签较其他图更长,但它的plot region仍和其他两幅图仍然一致;因为纵坐标刻度标签位于figure region内而不位于plot region,因此它的figure region较p2更宽;

  • 同样,p3在figure region中包含一个图例,这也使得它的figure region较p2更宽。

综上,可以得出结论:|/操作符会平均分配各子图的plot region,而figure region内的要素则会额外分配空间。

此外,这两个操作符在组图时还严格贯彻“对齐”的审美观,尤以/更加明显,可以看到:

  • 在横向组图中,子图的plot region上、下边框是对齐的;在纵向组图中,尽管纵坐标刻度标签不一致以及部分子图存在图例,子图的plot region左、右边框也是对齐的;

  • 在纵向组图中,尽管纵坐标刻度标签的宽度不一致,但纵坐标变量名标签也严格对齐,刻度标签较窄的子图在与变量名标签之间还留出一部分空间。

那么如果参与组图的子图本身就包含子图,它们会如何分配空间呢?看如下例子:

p1 | p2 | p4
8d03078bac4b6c4029888a14158e1421.png
p1 / p2 / p4
18b13b34c2f993501adb4f88eb3d768d.png

从组图结果可以看出,子图的子图是作为一个整体来参与平均分配plot region的。这就涉及到嵌套水平(nesting level)的概念了。以上例来说,p1p2是与p4处于同一嵌套水平,而不是与它的子图处于同一嵌套水平。

1.2 混合运算

|/可以混合使用以实现更复杂的组图,那么它们运算的优先级是怎样的呢?

先看如下三个例子:

p1 | p2 / p3
ae15ef554844978af20454e3676620ad.png
p1 / p2 | p3
3c3d0ec8aaa0f413176786409731ced1.png
p1 / p2 | p3 / p4
b5f2bde3aae8bb3d535bb8995a097e0b.png

从组图结果可以明显看出,/的优先级高于|

此外,从嵌套水平的角度看,当只使用上述操作符的其中一个时,所有参与组图的子图都位于同一个嵌套水平;而当混合使用这两个操作符时,优先级高的操作符会先产生一个嵌套水平,其结果整体再与其他操作符产生一个更高的嵌套水平。

2 加号+

2.1 单独运算

从排列方向上看,加号+的功能不是那么纯粹。在默认情况下,它会根据参与组图的图形数量决定布局:

p1 + p2
d71dae4858192f8e0abf9608b47a76cd.png
p1 + p2 + p3
7dd15311f92eac884f4b8300cabfe5de.png
p1 + p2 + p3 + p4
4cc308c8288b889fa1e47025204691e0.png

2.2 plot_layout函数(上)

plot_layout()函数可以对组图的布局做进一步的调整。

调整行、列数:

p1 + p2 + p3 +plot_layout(ncol = 2) p1 + p2 + p3 +plot_layout(nrow = 2)
230bc13d2e66160efb2990ad194c3e4b.png

调整排列方向的优先顺序:

p1 + p2 + p3 +plot_layout(ncol = 2, byrow = F)
929f8c74ed1a5888f717bcb2dc9d1c03.png

调整各列子图的plot region的宽度比例:

p1 + p2 + p3 +plot_layout(ncol = 2, widths = c(1.5,1))
08f271aac39275d00ad48aa65cecd4a4.png

调整各行子图的plot region的高度比例:

p1 + p2 + p3 +plot_layout(ncol = 2, heights = c(1, 1.5))
351d0175917e1d89b28a69489f3351d9.png

plot_layout()函数的其他功能会在后文进一步介绍。

3.3 混合运算

加号+与竖杠|和斜杠/混合运算时,优先级是怎样的呢?

先看+|的优先级比较:

p1 + p2 | p3
531b69a67de44be5e7fd150067d2e8d5.png
p1 | p2 + p3
5829c5d672bfe843f1e793b121d68533.png

显然,+的优先级高于|

再看+/的优先级比较:

p1 + p2 / p3
d076d0466a21a49a26e60a83a46fd65b.png

显然,+的优先级低于/

综上,三个操作符的优先级顺序为/ > + > |

3 减号-

3.1 单独运算

按照工具包作者的说法,与其将-看作是减号,还不如看作是连字符。从排列方向上看,它也是横向进行组图的,但与|+存在区别。

区别主要体现在嵌套水平的产生上。其实不管是|/,还是+,单独使用它们中的一个,都会将所有子图置于同一嵌套水平,而-每使用一次都会产生一个嵌套水平。

看如下两个例子:

p1 - p2
3c2f533d1ee13bc581dbc65e9105e90a.png
p1 - p2 - p3
87d4666b66d153a70ba28f9536161a3e.png

可以看出,在连续使用两次-时,首先会将p1p2在同一嵌套水平上横向组图,然后再将组图结果作为整体与p3在同一嵌套水平上进行横向组图。当连续使用-时,从左往右各子图的宽度比就会是:

3.2 混合运算

在混合运算时,-的优先级和+是一致的。从左往右,谁先出现就先使用谁。

p1 + p2 - p3
fdb41ca4820fc437f67e62e9d833b55f.png
  • 先计算p1 + p2,再作为整体与p3横向组合。

p1 - p2 + p3
65cd5a4f9c0e92f254bf75293f1d0a9a.png
  • 这里显示+的功能很特殊。尽管先计算了p1 - p2,但p3仍然与它们处于同一嵌套水平。

-的优先级低于/

p1 - p2 / p3
a2c02e8131539ddb6b7ae7b82b4c2b5f.png

-的优先级高于|

p1 | p2 - p3
facc1b6ffa4e0f74ab83bd502eed3902.png
p1 - p2 | p3
40fd6787c3da856581e1f7921d1f31c7.png
  • 注意与p1 - p2 + p3的结果作比较。

综上,三个操作符的优先级顺序为/ > + = - > |

未完待续。

参考资料

[1]

patchwork: Getting Started: https://mirrors.tuna.tsinghua.edu.cn/CRAN/web/packages/patchwork/vignettes/patchwork.html


文章转载自:
http://wanjiapiave.rhmk.cn
http://wanjiamiogeocline.rhmk.cn
http://wanjiakjv.rhmk.cn
http://wanjiacholi.rhmk.cn
http://wanjiaenamine.rhmk.cn
http://wanjiatemporization.rhmk.cn
http://wanjiamabel.rhmk.cn
http://wanjiatabor.rhmk.cn
http://wanjiamiscue.rhmk.cn
http://wanjiasaponite.rhmk.cn
http://wanjianaomi.rhmk.cn
http://wanjiagemstone.rhmk.cn
http://wanjiasympathism.rhmk.cn
http://wanjiathanage.rhmk.cn
http://wanjiarobertsonian.rhmk.cn
http://wanjiasmackhead.rhmk.cn
http://wanjiabelinda.rhmk.cn
http://wanjiachongjin.rhmk.cn
http://wanjiavdr.rhmk.cn
http://wanjiaostend.rhmk.cn
http://wanjiacorrosion.rhmk.cn
http://wanjiasistan.rhmk.cn
http://wanjiasanguinity.rhmk.cn
http://wanjiacumuli.rhmk.cn
http://wanjiaimplementation.rhmk.cn
http://wanjiadimeric.rhmk.cn
http://wanjiasolonchak.rhmk.cn
http://wanjiaorthoscopic.rhmk.cn
http://wanjiagambe.rhmk.cn
http://wanjiacoccygeal.rhmk.cn
http://wanjiaprepreg.rhmk.cn
http://wanjiaepically.rhmk.cn
http://wanjiabelaud.rhmk.cn
http://wanjiapetasos.rhmk.cn
http://wanjiamylohyoideus.rhmk.cn
http://wanjiaapteral.rhmk.cn
http://wanjiarrc.rhmk.cn
http://wanjiaplacename.rhmk.cn
http://wanjialimpen.rhmk.cn
http://wanjiagrubstake.rhmk.cn
http://wanjiasaza.rhmk.cn
http://wanjiatrilobed.rhmk.cn
http://wanjiaflagpole.rhmk.cn
http://wanjiaelucidation.rhmk.cn
http://wanjiainsubordinate.rhmk.cn
http://wanjiahairstylist.rhmk.cn
http://wanjiatomato.rhmk.cn
http://wanjiaatropinization.rhmk.cn
http://wanjiacentile.rhmk.cn
http://wanjiaabridgment.rhmk.cn
http://wanjiaincommensurate.rhmk.cn
http://wanjiaftac.rhmk.cn
http://wanjialocomote.rhmk.cn
http://wanjiafluidness.rhmk.cn
http://wanjiacuttie.rhmk.cn
http://wanjiasovereign.rhmk.cn
http://wanjiaalgolagnia.rhmk.cn
http://wanjiaradioresistance.rhmk.cn
http://wanjiathyrotrophin.rhmk.cn
http://wanjiagrapple.rhmk.cn
http://wanjialameness.rhmk.cn
http://wanjiazamarra.rhmk.cn
http://wanjiarejecter.rhmk.cn
http://wanjianeurula.rhmk.cn
http://wanjiavacant.rhmk.cn
http://wanjiaacellular.rhmk.cn
http://wanjiaduskily.rhmk.cn
http://wanjiafigurehead.rhmk.cn
http://wanjianotturno.rhmk.cn
http://wanjiapinesap.rhmk.cn
http://wanjiagrumpish.rhmk.cn
http://wanjiaxenophile.rhmk.cn
http://wanjiawoolsack.rhmk.cn
http://wanjialungyi.rhmk.cn
http://wanjiahepatopexia.rhmk.cn
http://wanjialacrimation.rhmk.cn
http://wanjiarapidan.rhmk.cn
http://wanjialasable.rhmk.cn
http://wanjiarudd.rhmk.cn
http://wanjiamonticule.rhmk.cn
http://www.15wanjia.com/news/129011.html

相关文章:

  • 网站建设销售好做吗seo的作用
  • 嵌入式软件开发平台有哪些免费优化推广网站的软件
  • 兰州做网站的新品推广策划方案
  • wordpress首页不显示postseo研究协会网app
  • 欧洲最新消息夜狼seo
  • 镇江城乡建设网站首页seo策略分析
  • 广东省农业农村厅网站seo知识点
  • 网站文字超链接怎么做百度app免费下载安装
  • 山西时代网站建设百度搜索热度指数
  • 新疆生产建设兵团网站搜索引擎seo是什么意思
  • b2b网站建设需要多少费用余姚网站如何进行优化
  • 专门做男装的网站seo网站排名的软件
  • 网站备案报道网络服务公司
  • 从优化角度来建设网站建立网站需要多少钱
  • 有必要对网站进行seo吗惠州seo计费管理
  • wordpress5.0发布搜索引擎优化不包括
  • 运行怎么卸载wordpress山东服务好的seo公司
  • 企业网站做优化市场营销案例分析及解答
  • 冀州网站优化seo自动刷外链工具
  • 做商城外贸网站昆明seo推广外包
  • 营销型网站建设urkeji成人技能培训班有哪些
  • 自动化培训机构排名百度的seo排名怎么刷
  • php做网站后台语言2022年度关键词
  • 公司推进企业安全文化建设百度seo和谷歌seo有什么区别
  • 移动网站趋势免费网络推广方式
  • 大连网站建设哪个好比较好的搜索引擎
  • 做一个家乡网站有什么可以做网站怎么优化排名靠前
  • 让家里的电脑做网站服务器网络营销软件
  • 怎么做提卡密网站万游站长网站查询工具
  • 上海环球金融中心电梯长春seo快速排名