在一个图中使用par(mfrow=c())绘制多个填充等高线图

7
我正在尝试构建一个由2-3个filled.contour图组成的图形。所有图的颜色比例尺相同,我只想要一个z值关键图。使用par(mfrow=c(1,3))进行此操作时遇到了困难。
示例代码:
x <- 1:5
y <- 1:5
z <- matrix(outer(x,y,"+"),nrow=5)
filled.contour(x,y,z)
filled.contour(x,y,z,color.palette=rainbow)
z2 <- z
z2[5,5] <- Inf
filled.contour(x,y,z2,col=rainbow(200),nlevels=200)

是否可以将2-3个图并排放置,并使用一个z值颜色键?我可以在GIMP中实现这一点,但我想知道是否可以在R中本地实现。

2个回答

8
我不认为在filled.contour中实现这一点是可能的。 虽然已经为您编写了扩展程序。可以在此处此处此处找到,并且这里有一个图例代码。 [如果您正在使用那些网站上提到的filled.contour3函数并且使用较新版本,则需要使用此SO帖子中提到的升级补丁。] 使用这些代码,我生成了如下图所示的内容:

3
很遗憾,filled.contour 有自己的性格。我发现很难操作 filled.contour 绘图。感谢指出修改版,并感谢 Carey McGilliard 和 Bridget Ferris 公布他们的代码。http://wiki.cbr.washington.edu/qerm/index.php/R/Contour_Plots - ECII

0

这个问题可以通过使用cowplot来解决。 关键在于cowplot::draw_plot函数,它成功地表示了图形(cowplot::draw_grob(~filled.contour(x,y,z)))。 稍后,可以将grob表示绑定在一起。 可能的问题是每个图形都有自己的图例。

x <- 1:5
y <- 1:5
z <- matrix(outer(x,y,"+"),nrow=5)
z2 <- z
z2[5,5] <- Inf

cowplot::plot_grid(~filled.contour(x,y,z), ~filled.contour(x,y,z,color.palette=rainbow), ~filled.contour(x,y,z2,col=rainbow(200),nlevels=200))

使用 reprex v2.0.2 在2023年2月14日创建


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接