R语言 合并图

R语言 合并图

在R编程语言中,你可以使用’par’函数来组合图。组合图将帮助你轻松做出决定。par()函数用于设置多个图的参数,而layout()函数决定了图的排列方式。要组合不同的图,首先应该创建单独的图,你可以使用plot()和legend()函数将每个图添加到一个绘图窗口中。

为什么要组合图

在进行数据分析时,可能会出现这样的情况:我们需要比较两张图,并根据它们做出决定。数据分析人员将图块结合起来,在同一时间查看不同的图块。

par()函数中的参数

参数 说明
mfrow() 用来指定图的行数
mfcol() 用来指定图表的列数
layout() 它以一个矩阵为参数,矩阵的每个元素代表布局中的一个绘图区域。

使用mfrow来组合绘图

我们将使用 palmerpenguins 数据集一段时间。在这个例子中,我们使用par()函数和mfrow参数创建了两个单一的图,并将它们按行合并。

#install palmerpenguins package
install.packages("palmerpenguins")
library(palmerpenguins)
  
# combined plot with 2 rows and 1 column
par(mfrows = c(2,1))
  
# first single plot
plot(penguinsbody_mass_g,
     penguinsflipper_length_mm,
     main = "ScatterPlot",
     xlab = "body_mass",
     ylab = "flipper_length")
  
# second single plot
plot(penguinsbill_depth_mm,
     penguinsbill_length_mm,
     main = "ScatterPlot",
     xlab = "bill_depth",
     ylab = "bill_length")

输出

合并R语言中的图

使用mfrows绘制的组合图

使用mfcol来组合图

在这个例子中,我们创建了两个单一的图,并使用par()方法和mfcol参数将它们逐列合并。

#create data
math_marks <- c(90, 95, 85, 76, 65)
science_marks <- c(45, 98, 54, 87, 65)
student_names <- c("A", "B", "C", "D", "E")
  
# combine plots with 1 row and 2 columns
par(mfcol = c(1,2))
  
# first pie chart
pie(math_marks, student_names,
    main = "PieChart", radius = 0.75)
  
# second pie chart
pie(science_marks, student_names,
    main = "Piechart", radius = 0.75)

输出

合并R语言中的图

使用mfcol的组合饼图

使用layout()来组合图

我们使用layout()参数来根据我们的要求组合图,我们使用layout()来定制组合图。

Note: layout() function can be used only within an open device, otherwise you will get an error.

为了避免在使用layout()函数时出现错误,请使用windows()函数,它可以创建一个新的窗口来组合绘图。layout()将一个矩阵以及nrow和ncol等作为参数。

game <- data.frame(scores <- c(34, 54, 21, 67, 98),
                   players <- c("A", "B", "C", "D", "E"),
                   avg_score <- c(56, 43, 65, 23, 16))
# display plot on screen
windows()
  
# create layout
layout(matrix(c(1, 2, 3, 4), nrow = 2,
              ncol = 2, byrow = TRUE))
  
# first plot
plot(gamescores, gameavg_score,
     main = "ScatterPlot",
     xlab = "Score_in_game",
     ylab = "avg_score")
  
# second plot
boxplot(gameavg_score, main = "Boxplot")
  
# third plot
hist(gamescores, main = "Histogram",
     xlab = "scores")
  
# fourth plot
pie(gameavg_score, gameplayers,
    main = "Piechart", radius = 0.75)

输出

合并R语言中的图

使用layout()绘制的组合图

要显示图的布局,你可以使用 layout.show() 函数。layout()函数的更多例子

par(mfrow = c(2, 2), mar=c(5, 5, 5, 5))
layout(matrix(c(2, 0, 1, 3), 2, 2, byrow = TRUE),
       widths=c(3, 3), heights=c(1, 3))
  
# Create sample data
set.seed(123)
x <- rnorm(100)
y <- rnorm(100)
  
# Create barplot
barplot(x, main = "Bar Plot", col = "blue")
  
# Create scatterplot
plot(x, y, main = "Scatter Plot",
     col = "red", pch = 16)
  
# Create densityplot
d <- density(x)
plot(d, main = "Density Plot",
     col = "green", type = "l")

输出

合并R语言中的图

使用layout()绘制的组合图

layout(matrix(c(1,2,3,3), ncol=2, byrow=TRUE))
x <- rnorm(100)
y <- rnorm(100)
plot(density(x), col = "green")
plot(x, y, 'p', col = "red")
barplot(x, col = "yellow")

输出

合并R语言中的图

使用layout()绘制的组合图

我们可以只创建一个简单的布局,里面没有任何图形,用于演示。

example <- layout(matrix(c(2, 0, 1, 3),
                         2, 2, byrow = TRUE))
# display layout
layout.show(example)

输出

合并R语言中的图

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程