我有一个简单的散点图
x<-rnorm(100)
y<-rnorm(100)
z<-rnorm(100)
我想绘制plot(x,y)
但点的颜色应基于 z
进行颜色编码。
此外,我希望能够定义有多少组(以及颜色)z
应该有。并且该分组应该能够抵抗异常值(也许将 z
密度分成 n
相等密度组)。
到目前为止我都是手动执行此操作,有什么方法可以自动执行此操作吗?
注意:我想使用基本 R 而不是 ggplot
来执行此操作.
最佳答案
您可以将颜色向量传递给 col
参数,因此只需以对您的应用程序有意义的方式定义 z
组即可。 base 中有 cut()
函数,Hmisc 中有 cut2()
函数,它们提供了更多的灵 active 。为了帮助选择合理的调色板,RColorBrewer包裹是无价的。这是定义 x,y,z 后的一个简单示例:
z.cols <- cut(z, 3, labels = c("pink", "green", "yellow"))
plot(x,y, col = as.character(z.cols), pch = 16)
您显然可以手动添加图例
。不幸的是,我不认为所有类型的图都接受 col
参数的向量,但 type = "p"
显然有效。例如,plot(x,y, type = "l", col = as.character(z.cols))
对我来说是单一颜色。对于这些绘图,您可以使用lines()或segments()或任何您需要使用的低级绘图命令添加不同的颜色。请参阅 @Andrie 的答案,了解如何使用基本图形中的 type = "l"
绘图 here 来执行此操作。 .
关于r - 具有颜色组的散点图 - 基本 R 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8475144/