我有一个问题,我的标题可能暗示但是给出这个例子可能会更容易。我正在研究Borcard等人给出的代码行。 2011年随鱼类分布。有一个地理坐标(x,y)的站点(spa)矩阵,这些站点的鱼类丰度矩阵(spe)和环境因子矩阵(env)。
根据网站表示鱼类分布的一种方法是使用以下代码:
windows(title="Species Locations", 9, 9)
par(mfrow=c(2,2))
plot(spa, asp=1, col="brown", cex=spe$TRU, main="Brown trout",
xlab="x coordinate (km)", ylab="y coordinate (km)")
lines(spa, col="light blue")
plot(spa, asp=1, col="brown", cex=spe$OMB, main="Grayling",
xlab="x coordinate (km)", ylab="y coordinate (km)")
lines(spa, col="light blue")
等...
然而,这绘制了OMB和TRU物种的2个不同图。 如何获得相同的图表,但同一图表上的OMB和TRU物种,仍然使用cex但是为这两个物种获得不同颜色的圆圈?
这会有很多帮助!
先谢谢,
答案 0 :(得分:0)
我想你想要(类似的东西)
plot(spa, asp = 1, type = "n", main = "Brown trout",
xlab = "x coordinate (km)", ylab = "y coordinate (km)")
lines(spa, col="light blue")
points(spa, col = "brown", cex = spe$TRU)
points(spa, col = "green", cex = spe$OMB)
legend("topright", legend = c("Brown Trout", "Grayling"),
col = c("brown","green"), pch = 1, bty = "n")
这里的主要想法是只使用points()
调用按顺序添加数据点,就像在绘制数据后使用lines()
为每个绘图添加行一样(注意这里我将它们绘制出来)避免过度绘制数据的背景。)
然而,您想要做的事情有一个明确的问题;这两个points()
调用基本上是在绘图上的相同位置绘制数据,因此您可能会遇到一组数据的问题,这些数据会超过其他物种的数据。
如果你想在同一个图上有很多物种(不只是两个)(多个情节就像他们的例子),那么我建议改用格子或 ggplot2 做绘图,但你需要先按一下数据。如果您想用获取Borcard 等的示例所需的代码来更新您的问题,那么我将使用这样的示例更新我的答案。我觉得这是显示这些数据的一种更好的方式,而不是在同一个房地产上覆盖两个或更多物种。