根据数据变量绘制颜色和形状的点

Nit*_*tro 15 variables plot r colors shape

我试图制作一个散点图,每个点的颜色对应一个变量,每个点的形状对应另一个变量.这是一些示例数据和我用于制作第二个图的代码:

Example data:(of 3 points)
 X    Y    att1    att2

.5    .5    1       A
.24   .8    3       B
.6    .7    5       C

code:(for image2)
> plot(X,Y, col=statc[att2], pch = 15)
> legend("right", statv, fill=statc)

Where:
> statv
[1] "A"  "B" "C"  
> statc
[1] "red"    "blue"   "orange"
Run Code Online (Sandbox Code Playgroud)

我已经单独完成了这项工作,但不知道如何做到这两点.这是两个图:

1在此输入图像描述

2在此输入图像描述

例如:我希望颜色应用于具有相同att1的点和要应用于具有相同att2的点的形状

ags*_*udy 20

ggplot2 与其他R系统图相比,擅长的领域之一是将绘图参数映射到数据变量.(通过美学机制)

library(ggplot2)
dat <- data.frame(X =runif(20),
                     Y =runif(20),
                     att1 = gl(5,20/5),
                     att2 =gl(3,20/3))
ggplot(dat,aes(x=X,y=Y,color=att1,shape=att2)) +
    geom_point(size=5) 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

您也可以在基础图中执行此操作,但您应手动生成图例...

plot(dat$X,dat$Y,pch=as.integer(dat$att1),col=as.integer(dat$att1))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述