带颜色组的散点图 - 基础R图

时间:2011-12-12 13:33:42

标签: r

我有一个简单的散点图

x<-rnorm(100)
y<-rnorm(100)
z<-rnorm(100)

我想绘制plot(x,y),但点的颜色应根据z进行颜色编码。

此外,我希望能够定义z应该有多少组(以及颜色)z。并且这种分组应该对异常值有抵抗力(可能将n密度分成ggplot等密度组。

直到现在我手动执行此操作,有没有办法自动执行此操作?

注意:我想用基础R而不是{{1}}执行此操作。

1 个答案:

答案 0 :(得分:11)

您可以将颜色矢量传递给col参数,因此只需以对您的应用程序有意义的方式定义z组即可。基础中有cut()函数,或者Hmisc中有cut2(),它提供了更多的灵活性。为了帮助选择合理的调色板,RColorBrewer包是非常宝贵的。这是定义x,y,z后的一个简单示例:

z.cols <- cut(z, 3, labels = c("pink", "green", "yellow"))
plot(x,y, col = as.character(z.cols), pch = 16)

enter image description here

显然,您可以手动添加legend。不幸的是,我不认为所有类型的图都接受col参数的向量,但type = "p"显然有效。例如,plot(x,y, type = "l", col = as.character(z.cols))对我来说就是一种颜色。对于这些图,您可以使用lines()segments()或您需要使用的低级绘图命令添加不同的颜色。请参阅@Andrie的答案,使用基本图形here中的type = "l"绘图执行此操作。