利用PAR函数绘制基于数据组的多幅图

利用PAR函数绘制基于数据组的多幅图,r,plot,subset,par,R,Plot,Subset,Par,我需要在R中绘制4个图,位置在x轴上,大理石数量在y轴上。数据中有四个组,根据集合和块,它们是唯一的 现在,我正在根据块对每个数据进行子设置并绘制它。之后,我使用par()函数将它们全部绘制在一起 是否有一种简单的方法来绘制数据,而无需手动进行子集划分 Set Size Position Marbles Block 1 Small 1 8 1 1 Small 2 81 1 1 Small 3

我需要在R中绘制4个图,位置在x轴上,大理石数量在y轴上。数据中有四个组,根据
集合
,它们是唯一的

现在,我正在根据
对每个数据进行子设置并绘制它。之后,我使用
par()
函数将它们全部绘制在一起

是否有一种简单的方法来绘制数据,而无需手动进行子集划分

  Set Size    Position  Marbles Block
   1   Small  1         8        1
   1   Small  2         81       1
   1   Small  3         3        1
   1   Small  4         4        1
   4   Small  1         8        1
   4   Small  2         81       1
   4   Small  3         3        1
   4   Small  4         4        1
   4   Small  1         14       2
   6   Small  2         11       2
   6   Small  3         12       2
   6   Small  4         25       2
   1   Small  1         8        3
   1   Small  2         81       3
   1   Small  3         3        3
   1   Small  4         4        3
   6   Small  1         14       4
   6   Small  2         11       4
   6   Small  3         12       4
   6   Small  4         25       4

您可以使用
ggplot2::facet\u wrap()

数据:


dat您可以使用
ggplot2::facet\u wrap()

数据:


dat实际使用
par
和base
plot

op <- par(mfrow=c(2, 2))
by(d, d$Block, function(b) plot(Marbles ~ Position, b, ylim=c(0, max(d$Marbles)), 
                                main=unique(b$Block)))
par(op)

op实际使用
par
和base
plot

op <- par(mfrow=c(2, 2))
by(d, d$Block, function(b) plot(Marbles ~ Position, b, ylim=c(0, max(d$Marbles)), 
                                main=unique(b$Block)))
par(op)

op如果有人要投反对票,你至少应该有善意的理由来解释我没有投反对票,但你应该包括你当前的代码以避免这种情况。如果有人要投反对票,你至少应该有善意的理由来解释我没有投反对票,但你应该包括你当前的代码来避免这种情况。这很有用。但如果我的块中有多个集合,我需要再次将其子集。不管怎样,要绕过这个问题?@Ash
facet\u wrap(~Block+Set)
,这很有用。但如果我的块中有多个集合,我需要再次将其子集。不管怎么说,要绕过这个问题?@Ash
facet\u wrap(~Block+Set)
op <- par(mfrow=c(2, 2))
by(d, d$Block, function(b) plot(Marbles ~ Position, b, ylim=c(0, max(d$Marbles)), 
                                main=unique(b$Block)))
par(op)
d <- structure(list(Set = c(1L, 1L, 1L, 1L, 4L, 4L, 4L, 4L, 4L, 6L, 
6L, 6L, 1L, 1L, 1L, 1L, 6L, 6L, 6L, 6L), Size = c("Small", "Small", 
"Small", "Small", "Small", "Small", "Small", "Small", "Small", 
"Small", "Small", "Small", "Small", "Small", "Small", "Small", 
"Small", "Small", "Small", "Small"), Position = c(1L, 2L, 3L, 
4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 
4L), Marbles = c(8L, 81L, 3L, 4L, 8L, 81L, 3L, 4L, 14L, 11L, 
12L, 25L, 8L, 81L, 3L, 4L, 14L, 11L, 12L, 25L), Block = c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 4L, 
4L, 4L, 4L)), class = "data.frame", row.names = c(NA, -20L))