Paul, First solution works for me. To change something in an earlier figure, I can start over and redraw all figures.
In practice, how is mfg used? Thanks, Naresh Sent from my iPhone > On Nov 12, 2025, at 3:04 PM, Paul Murrell <[email protected]> wrote: > > Hi > > Base graphics is designed for drawing everything in a figure before moving on > to the next figure. Also, 'mfg' can only be set via par(). > Are you looking for something like this ... ? > > > par(mfrow = c(2, 2)) > for (i in 1:2) { > for (j in 1:2) { > par(mfg = c(i, j)) > plot(c(0, 1), c(0, 1), type = "n") > text(0.5, 0.5, labels = paste("(", i, ",", j, ")")) > } > } > > > If you really want to revisit previous figures, you might try split.screen(), > but it is pretty fragile and, as the example below shows, still not designed > for revisiting a previous *plot* (just a previous figure region) ... > > > split.screen(c(2, 2)) > for (i in 1:4) { > screen(i) > plot(c(0, 1), c(0, 1), type = "n") > } > for (i in 1:2) { > for (j in 1:2) { > screen(2*(i - 1) + j) > text(0.5, 0.5, labels = paste("(", i, ",", j, ")")) > } > } > > > If you REALLY want to revisit previous drawing, you might need to look at > {grid} viewports, which are designed to allow you to get back to the original > drawing context ... > > > library(grid) > grid.newpage() > pushViewport(viewport(layout=grid.layout(2, 2))) > for (i in 1:2) { > for (j in 1:2) { > pushViewport(viewport(layout.pos.row=i, layout.pos.col=j, > name=paste0(i, j))) > grid.rect(width=.8, height=.8) > upViewport() > } > } > for (i in 1:2) { > for (j in 1:2) { > downViewport(paste0(i, j)) > grid.text(paste("(", i, ",", j, ")")) > upViewport() > } > } > > > Paul > > >> On 13/11/25 07:28, Naresh Gurbuxani wrote: >> After drawing multiple figures, I want to select an earlier figure to add >> some low level commands. Using mfg parameter runs all commands in the most >> recent figure only. How can an earlier figure be selected? >> Thanks, >> Naresh >> par(mfrow = c(2, 2)) >> for (i in 1:4) plot(c(0, 1), c(0, 1), type = "n”) >> for (i in 1:2) {for (j in 1:2) text(0.5, 0.5, labels = paste("(", i, ",", j, >> ")"), mfg = c(i, j, 2, 2))} >> #All text is in bottom right figure only >> ______________________________________________ >> [email protected] mailing list -- To UNSUBSCRIBE and more, see >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide https://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. > > -- > Dr Paul Murrell (he/him) > Te Kura Tatauranga | Department of Statistics > Waipapa Taumata Rau | The University of Auckland > Private Bag 92019, Auckland 1142, New Zealand > 64 9 3737599 x85392 > [email protected] > www.stat.auckland.ac.nz/~paul/ > ______________________________________________ [email protected] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide https://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.

