使用 R 中 fields
中的 image.plot
,我需要将垂直颜色图例向右移动一点,以便容纳右侧的第二个 y 轴情节的手边。这是我正在谈论的内容的可重现示例:
x <- seq(0, 1, 0.1)
y <- x
n <- length(x)
z <- matrix(runif(n^2), n, n)
xyzlist <- list(x, y, z)
image.plot(x,y,z)
yaxis2 <- y^2
axis(4, at = y, labels = yaxis2)
因此您可以看到新的轴标签如何融入图例中。如何移动图例以免撞到新的轴标签?
最佳答案
您可以(在某种程度上)使用函数的参数 smallplot
来调整图例的大小和位置。
在您的示例中,您可以使用以下代码:
library(fields)
x <- seq(0, 1, 0.1)
y <- x
n <- length(x)
z <- matrix(runif(n^2), n, n)
xyzlist <- list(x, y, z)
yaxis2 <- y^2
### code added: left, right, bottom, top
image.plot(x,y,z, smallplot = c(.89, .94, .2, .8))
axis(4, at = y, labels = yaxis2)
这会产生以下图:
当然,您可以进一步修改图例,使其更小、更短等
请告诉我这是否是您想要的。
替代方案
另一种方法是绘制绘图 2 次。第一次调用生成一个没有图例的图(因为没有很好地指定,并且这会生成错误)。然后绘制轴(进行直线调整,根据绘图窗口的大小可能会有所不同)。第三也是最后,绘制图例(比上一个有错误的图更靠左)。
image.plot(x,y,z, smallplot = c(.85, .86, 1, .8))
axis(4, at = y, labels = yaxis2, line = -6)
image.plot(x,y,z, smallplot = c(.89, .92, .2, .8), legend.only = TRUE)
关于r - 如何移动 image.plot 中的垂直色带图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54131378/