我正在尝试在filled.contour绘图中绘制一个框,但不幸的是,当我在fill.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))
Run Code Online (Sandbox Code Playgroud)
有谁知道如何在filled.contour函数中绘制这些线?否则,线条无法正确绘制到主图像上,因为图形的比例/图例位于右侧.
谢谢!
用于filled.contour解释问题的手册页(并提供解决方案)
此功能目前使用"布局"功能,因此仅限于整页显示.作为替代方案,请考虑"晶格"包中的"levelplot"和"contourplot"函数,这些函数适用于多面板显示.
'filled.contour'产生的输出实际上是两个图的组合; 一个是填充轮廓,一个是图例. 为这两个图设置了两个独立的坐标系, 但它们仅在内部使用 - 一旦函数返回,这些坐标系就会丢失. 如果要注释主轮廓图,例如添加点,可以在'plot.axes'参数中指定图形命令. 下面给出一个例子.
所以基本上你传递一些指令作为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);})
Run Code Online (Sandbox Code Playgroud)
请注意,您必须重新创建两个轴,否则将不会绘制它们.此外,lines当有rect功能时,无需使用语句!:)
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
3131 次 |
| 最近记录: |