具有不同色点的散点图

时间:2019-06-21 00:10:05

标签: r plot scatter-plot

试图用十二个点制作一个简单的散点图。这些点分为三组,每组四个,分别涉及三种土地利用类型的四个地点。我想为与他们的土地使用类型(住宅,工业和绿化带)相关的点上色。散点图显示了香农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

1 个答案:

答案 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添加尽可能多的颜色