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

ECI*_*CII 5 r

我有一个简单的散点图

x<-rnorm(100)
y<-rnorm(100)
z<-rnorm(100)
Run Code Online (Sandbox Code Playgroud)

我想绘制plot(x,y)但是点的颜色应该基于颜色编码z.

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

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

注意:我想用base R而不是ggplot.

Cha*_*ase 11

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

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

在此输入图像描述

你显然可以legend手动添加.不幸的是,我不认为所有类型的图都接受col参数的载体,但type = "p"显然有效.例如,plot(x,y, type = "l", col = as.character(z.cols))对我来说是单色.对于这些图,您可以使用lines()或者segments()或者您需要使用的低级绘图命令添加不同的颜色.请参阅@Andrie的答案,type = "l"此处使用基本图形绘制图表.