我正在尝试在filled.contour图中绘制一个框,但是不幸的是,在创建filled.contour图后绘制lines()时,由于比例尺将图像向左移动,因此该图向右移动,但方框保持相同的坐标。这是我的代码如下所示:

dev.new(width=6,height=7)
mypredict<-matrix(data=mypredict,nrow=20,ncol=25)
filled.contour(x=seq(from=-1.5,to=1.5,length=20),
y=seq(from=1,to=3.75,length=25),
z=mypredict,
col=hsv(h=seq(from=2/3,to=0,length=20),s=1,v=1)
)
top <- 3.42
bot <- 1.56
lines(c(-1,-1),c(bot,top))
lines(c(1,1),c(bot,top))
lines(c(-1,1),c(top,top))
lines(c(-1,1),c(bot,bot))

有谁知道我如何在filled.contour函数中绘制这些线?否则,由于图形的比例尺/图例位于右侧,因此线条无法正确绘制在主图像上。

谢谢!

最佳答案

filled.contour的手册页介绍了该问题(并提供了解决方案)



因此,从本质上讲,您传递了一些指令作为plot.axes参数来覆盖标准行为。

在您的示例中:

filled.contour(x = seq(from=-1.5,to=1.5,length=20),
      y = seq(from=1,to=3.75,length=25), z = mypredict,
      col = hsv(h=seq(from=2/3,to=0,length=20),s=1,v=1),
      plot.axes = {axis(1); axis(2); rect(left, bottom, right, top);})

请注意,您必须重新创建两个轴,否则将不会绘制它们。另外,如果有lines函数,则无需使用rect语句! :)

希望这可以帮助

09-19 02:35