试图用十二个点制作一个简单的散点图。这些点分为三组,每组四个,分别涉及三种土地利用类型的四个地点。我想为与他们的土地使用类型(住宅,工业和绿化带)相关的点上色。散点图显示了香农H和辛普森指数之间的关系(使用素食主义者估算生物多样性的丰富度)。我可以绘制图,但不能为点着色。
请参见下面的代码。我尝试过这种变化。我还尝试了library(cars)
中的散点图函数。可以,但是我无法自定义点的形状/大小/颜色,只能访问默认值。
richness.fig <- plot(H, simp, xlab = "Shannon's H", ylab = "Simpson's", frame = FALSE)
points(richness.fig, "sites", pch = 19, col = "green", select = richcompare$use == "green")
points(richness.fig, "sites", pch = 19, col = "blue", select = richcompare$use == "indust")
points(richness.fig, "sites", pch = 19, col = "red", select = richcompare$use == "res")
我确实得到了一个散点图,但是是黑白的。错误消息如下所示。
Error in xy.coords(x, y) : 'x' and 'y' lengths differ
答案 0 :(得分:1)
您可以在一次调用plot()的过程中完成全部操作。只需将一个变量传递给“ col”参数即可,该参数描述您正在着色的组。
richness.fig <- plot(H, simp, xlab = "Shannon's H", ylab = "Simpson's", frame = FALSE, col=richcompare$use)
如果要使用points()函数,则前两个参数通常指定要绘制的X和Y点。这就是为什么您会收到有关x和y长度不同的错误的原因。因此,另一种方法是仍然采用这种方式,但是将H和simp用作前两个参数。
更新:自定义颜色可以如下进行。
myCols <- c("green", "red", "blue")
richness.fig <- plot(H, simp, xlab = "Shannon's H", ylab = "Simpson's", frame = FALSE, col=myCols[richcompare$use])
在因子比较水平为$ use时,向myCols添加尽可能多的颜色