[R-sig-Geo] layout and plot.stars

Roger Bivand Roger@B|v@nd @end|ng |rom nhh@no
Tue Mar 15 11:29:30 CET 2022


On Tue, 15 Mar 2022, Roger Bivand wrote:

> On Tue, 15 Mar 2022, Patrick Giraudoux wrote:
>
>>  Hi,
>>
>>  I have a trouble with the combination of layout and plot.stars. e.g.
>>
>>  nf <- layout(matrix(c(1,2),2,1,byrow = TRUE), c(3,3), c(3,1), TRUE)
>>  layout.show(nf)
>>
>>  plot(st_geometry(mydept),col="grey",border="grey90")
>>  plot(st_rasterize(ztot),col=mypal(12),main="",breaks="equal",add=TRUE)
>
> You have already noticed that sf and stars, like raster and terra, modify the 
> assumptions of base plot methods, as graphics::filled.contour(), unless some 
> ordering and argument conditions are met, crucially the non-base reset= 
> argument. I do not think that you can use layout() at all.
>
> library(stars)
> nc <- st_read(system.file("gpkg/nc.gpkg", package="sf"))
> bir74_rast <- st_rasterize(nc["BIR74"])
> plot(bir74_rast, reset=FALSE)
> plot(st_geometry(nc),border="grey90", add=TRUE)
> gridGraphics::grid.echo()
> library(grid)
> g <- grid.grab()
> plot(nc["BIR74"])
> gridGraphics::grid.echo()
> gv <- grid.grab()
> grid.newpage()
> gridExtra::grid.arrange(g, gv, ncol=2)
>
> Grabbing the base graphics device state lets you use 
> gridExtra::grid.arrange() to place multiple graphics objects; here I haven't 
> tried to constrain aspect or relative sizes. I don't think that the plot 
> methods in sf and stars play well with layout, because they use it themselves 
> internally.

The integration of base graphics in grid graphics is mention in the 
Wednesday talk in https://rsbivand.github.io/BAN422_V20/.

>
> Hope this helps,
>
> Roger
>
>>
>>  plot(mypoly,col=mypal(12),border=mypal(12))
>>
>>  I expect that the first two plots display in region #1, the second added
>>  to the first, and the third plot in region #2. However, this is not what
>>  happens: actually, the third plot displays in region 1 erasing the others.
>>  I understand that plot.stars when not "added" does not respect the layout
>>  definition (and displays its own regions), and that my problem comes from
>>  the way plot.stars deals with that.
>>
>>  Has anyone an idea about a workaround ?
>>
>>  _______________________________________________
>>  R-sig-Geo mailing list
>>  R-sig-Geo using r-project.org
>>  https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-sig-geo&data=04%7C01%7CRoger.Bivand%40nhh.no%7Cc67e7b9e4d6b43cb453c08da065345c7%7C33a15b2f849941998d56f20b5aa91af2%7C0%7C0%7C637829252131764014%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=IDZZmUAOMmrU8cwbsARqkHTry%2BA5v%2FWpB2JzEmEcc7U%3D&reserved=0
>> 
>
>

-- 
Roger Bivand
Emeritus Professor
Department of Economics, Norwegian School of Economics,
Postboks 3490 Ytre Sandviken, 5045 Bergen, Norway.
e-mail: Roger.Bivand using nhh.no
https://orcid.org/0000-0003-2392-6140
https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en



More information about the R-sig-Geo mailing list