【问题标题】:R problem with multiple plots pdf win7R问题与多个情节pdf win7
【发布时间】:2011-03-10 04:08:18
【问题描述】:

我试图通过垂直堆叠两个图 (a) 和 (b) 来制作一个图(即,具有 2 行 1 列的多重图)。

虽然我可以对我尝试过的其他图执行此操作,但使用 ODE 求解器包 deSolve 从数据生成的以下两个图拒绝合并。在屏幕上,情节 (a) 闪过,而我正看着情节 (b)。将绘图保存为 1 个 pdf 文件,其中 2 页(每个绘图在单独的页面上),而不是 1 个 pdf 文件和 1 页(我正在寻找的两个绘图堆叠成一个图)。

从代码中可以看出,我尝试了 mfrow 和布局方法都无济于事。任何帮助将不胜感激。

谢谢, 凯莉

df1 <-function(t,y,mu)( list(c(y[2], mu*y[1]^3 - y[1] + 0.005 * cos(t))))
library(deSolve)
yini <- c(y1=0, y2=0)
df2 <-ode(y = yini, func = df1, times = 0:1050, parms = 0.1667)
t <- seq(0, 1050, length=10000)
x <- 0.24 * (1 - cos(0.012 * t)) * cos(t + sin(0.012 * t))
pdf("c:/users/name/Desktop/figure2.pdf", height = 3, width=8)
# par(mfrow = c(2, 1))
layout(matrix(c(1, 2), 2, 1, byrow = TRUE))
plot(df2, type="l", which="y1", ylab="x", xlab="t", main="(a)")
plot(t, x, type="l", main="(b)")
dev.off()

【问题讨论】:

  • 我认为问题在于 deSolve 对象有自己的绘图方法,并且覆盖了布局发生的情况。参见 ?plot.deSolve

标签: r


【解决方案1】:

问题是deSolve 对象有自己的绘图方法,并且覆盖了布局发生的情况。一旦您的第一个绘图运行,布局设置就完全撤消,并且显示根据deSolve 对象的默认值进行配置。这就是为什么当第二个绘图覆盖第一个绘图时会出现闪光的原因,因为不再有多面板显示。

绘图方法是 ?plot.deSolve - 此函数采用 mfrow/mfcol 参数,因此您可以按预期使用布局。

layout(matrix(c(1, 1, 2, 2), 2, 2, byrow = TRUE))
plot(df2, type="l", which = "y1", ylab = "x", xlab = "t", main = "(a)", mfrow = c(2, 1))
plot(t, x, type = "l", main = "(b)")

【讨论】:

  • 您好 mdsummer,感谢您解决此问题。现在剧情看起来很棒!最好的问候,凯莉。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-11
  • 2019-02-03
  • 2014-10-11
  • 1970-01-01
  • 2011-05-18
  • 2012-10-18
相关资源
最近更新 更多