r语言同时画两张图(如何用布局和视口出图)

​01—图形组合布局par(mfrow=c(2,2))par(mfrow=c(2,2)),可以理解将绘图区域分割为2×2的矩阵区域,另可参照《R语言实战》3.5图形的组合##################par(mfrow=c(2,2))####################attach(iris)opar<-par(no.readonly=TRUE)#data(iris)#head(iris)#>head(iri…

大家好,又见面了,我是你们的朋友全栈君。

r语言同时画两张图(如何用布局和视口出图)

 

​

01

—

图形组合布局

par(mfrow=c(2,2))

 

par(mfrow=c(2,2)),可以理解将绘图区域分割为2×2的矩阵区域,另可参照《R语言实战》3.5图形的组合

##################par(mfrow=c(2,2))####################

attach(iris)

opar <- par(no.readonly = TRUE)

# data(iris)

# head(iris)

# > head(iris)

# Sepal.Length Sepal.Width Petal.Length Petal.Width Species

# 1          5.1         3.5          1.4         0.2  setosa

# 2          4.9         3.0          1.4         0.2  setosa

# 3          4.7         3.2          1.3         0.2  setosa

# 4          4.6         3.1          1.5         0.2  setosa

# 5          5.0         3.6          1.4         0.2  setosa

# 6          5.4         3.9          1.7         0.4  setosa

 

​par(mfrow=c(2,2)) # 设置2×2的布局

plot(Sepal.Length,Sepal.Width, main = “第一张图”)

boxplot(Sepal.Length, horizontal = TRUE, main = “第二张图”)

boxplot(Sepal.Width, main = “第三张图”)

hist(Petal.Length, main = “第四张图”)​

par(opar)

detach(iris)

 

r语言同时画两张图(如何用布局和视口出图)

 

02

—

图形组合布局

par(fig=c(x1, x2, y1, y2), new = TRUE)

 

par(fig=c(x1, x2, y1, y2), new = TRUE),取x1,x2,y1,y2四条线圈住的位置绘图图形,另可参照《R语言实战》3.5图形的组合

 

r语言同时画两张图(如何用布局和视口出图)

 

opar <- par(no.readonly = TRUE)

 

par(fig=c(0,0.8,0,0.8)) # 设置散点图的布局参数

plot(iris$Sepal.Length,iris$Sepal.Width) #绘制散点图​

 

par(fig=c(0,0.8,0.65,1),new = TRUE) #设置上方箱型图的布局参数

boxplot(iris$Sepal.Length, horizontal = TRUE, axes=FALSE) # 绘制上方箱型图​

 

par(fig=c(0.65,1,0,0.8),new = TRUE) #设置右侧箱型图的布局参数

boxplot(iris$Sepal.Width, axes=FALSE) # 绘制右侧箱型图​

 

mtext(“par(fig=c(x1, x2, y1, y2), new = TRUE)”,side = 3, outer=TRUE, line=-3)

par(opar)

 

r语言同时画两张图(如何用布局和视口出图)

 

03

—

图形组合布局

grid.layout & vplayout

library(ggplot2)

 

​#绘制基本ggplot图

base <- ggplot(mpg, aes(displ, hwy)) + geom_point()

p1 <- base + geom_smooth() + labs(title=”图1″) #如图1

 

​#用%+%调整映射关系中的数据

base <- ggplot(mpg, aes(displ, hwy)) + geom_point()

 

p2 <- base %+% subset(mpg, fl == “p”) + labs(title=”图2″) #图2​#第二种调整数据的方法list

p3 <- base + list(subset(mpg, fl == “p”), geom_smooth(), labs(title=”图3″)) #图3​

 

###########一页多图########

library(grid)

grid.newpage()  ##新建页面

pushViewport(viewport(layout = grid.layout(2,2))) #将页面分成2*2矩阵

vplayout <- function(x,y){ viewport(layout.pos.row = x, layout.pos.col = y)}​

 

print(p1, vp = vplayout(1,1))   #(1,1)的位置画图1

print(p2, vp = vplayout(1,2))   #(1,2)的位置画图2

print(p3, vp = vplayout(2,1:2))  #(2,:)的位置画图

r语言同时画两张图(如何用布局和视口出图)

 

04

—

图形组合布局

plot_grid {cowplot}

 

install.packages(“cowplot”) #安装cowplot包

library(cowplot) # 加载

?plot_grid  #帮助函数查看具体usage

 

示例

library(ggplot2)​

df <- data.frame(  x = 1:10, y1 = 1:10, y2 = (1:10)^2, y3 = (1:10)^3, y4 = (1:10)^4)

​p1 <- ggplot(df, aes(x, y1)) + geom_point()

p2 <- ggplot(df, aes(x, y2)) + geom_point()

p3 <- ggplot(df, aes(x, y3)) + geom_point()

p4 <- ggplot(df, aes(x, y4)) + geom_point()

 

gridplot_grid(p1, p2, p3, p4)

r语言同时画两张图(如何用布局和视口出图)

 

05

—

图形组合布局

multiplot{Rmisc}

 

############################# multiplot{Rmisc} ##################################

library(Rmisc)

library(ggplot2)​

 

df <- data.frame(  x = 1:10, y1 = 1:10, y2 = (1:10)^2, y3 = (1:10)^3, y4 = (1:10)^4)​

p1 <- ggplot(df, aes(x, y1)) + geom_point()

p2 <- ggplot(df, aes(x, y2)) + geom_point()

p3 <- ggplot(df, aes(x, y3)) + geom_point()

p5 <- ggplot(mpg, aes(as.factor(year), hwy)) +  geom_boxplot() +  facet_wrap(~class, scales = “free_y”)​

 

multiplot(p1, p2, p3, p5, cols=2)​

r语言同时画两张图(如何用布局和视口出图)

 

“ 获取源代码请至“数据驱动实践”公众号后台回复:一页多图”

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/127525.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • can总线板卡_CAN接口

    can总线板卡_CAN接口现有市场下,智能化程度越来越高,特别是AGV、机器人、物流车、动力电池检测等等行业中工控机应用越来越频繁。然而这些产品核心控制器与电池都是走的CAN总线通讯,而工控机本身是没有CAN通讯,那么工控机就需要通讯桥梁(025-68250795)来扩展CAN通道。而在工控机当中有nimipcie接口,如此就用可以用minipcie接口转CAN的一个模块来实现扩充CAN口。miniPCIe接口CAN卡是PCIExpressmini卡槽的工控机或单板电脑快速扩展CAN通道的利器。产品特性PCIExpr

    2022年9月3日
  • pycharm激活码2021(破解版激活)

    pycharm激活码2021(破解版激活),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
  • 子网掩码和ip地址的关系_ip地址和子网掩码求网络地址

    子网掩码和ip地址的关系_ip地址和子网掩码求网络地址1、什么是ip地址在网络中,所有的设备都会被分配一个地址。这个地址就相当于某条路上的XX号XX房。其中【号】对应的号码是分配了整个子网的,而【房】对应的号码是分配给子网中的计算机的,这就是网络中的地

    2022年8月1日
  • dfs算法java(java算法预测)

    packagecom.yangkaile.generator;importlombok.extern.slf4j.Slf4j;importorg.junit.jupiter.api.Test;importjava.util.*;/***@description:DFA算法案例*@className:ApplicationTest*@author:wangdong*@Date:2021/7/2615:56*/@Slf4jpublicclas.

    2022年4月15日
  • 在Java中常见的数据类型有哪些?「建议收藏」

    在Java中常见的数据类型有哪些?「建议收藏」在java中常见的数据类型有哪些?看图看图看图重要的事情说三遍↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓内置数据类型类型名称 字节、位数 最小值 最大值 默认值 例子 byte字节 1字节,8位 -128(-2^7) 127(2^7-1) 0 bytea=…

    2022年7月8日
  • spss相关系数及其检验_等级相关系数法检验

    spss相关系数及其检验_等级相关系数法检验这里写目录标题SPSS的异方差检验(等级相关系数检验法)数据来源普通最小二乘法求回归方程功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导…

    2022年10月24日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号