我想使用image()
功能在R中创建图形。我的X轴具有非数字细分。轴是这样分开的:"北极海" - "北大西洋" - 等。
如何在此轴上添加垂直线,以便使用abline(v = [value])
函数在轴上分离不同的组?
这是我用来创建图像的代码(效果很好):
dev.new()
par(mar = c(9,9,1,1), bg = "grey90")
n.bins <- 24
image(log10(data.stand), col = colorRampPalette(blues9)(n.bins), xaxt = "n", yaxt = "n", useRaster = F)
axis(side = 2, at = 0:(n.taxa.data - 1) / (n.taxa.data - 1), labels = colnames(data.by.tax), las = 1)
axis(side = 1, at = 0:(n.iho.obis - 1) / (n.iho.obis - 1), labels = rownames(data.by.tax), las = 2, cex.axis = 0.5)
我尝试使用abline()
函数实现垂直线,但没有出现在图中。
现在我的问题是:如何在此代码中正确实现它?我如何也可以使它出现在图中?
欢呼!
由于您没有向image
提供x
和y
参数,但只有z
矩阵,因此默认情况下将seq(0,1,nrow(z))
和seq(0,1,ncol(z))
作为X和Y值。因此,您的垂直线必须在[0,1]范围内表示。假设您的10列是100组中的10列,然后abline(v=.1)
应该解决问题。当然,直接声明X和y可能更方便,因此您可以更好地控制它。