web-dev-qa-db-ja.com

データ変数に基づいて色と形状でポイントをプロットする

ある変数に対応する各ポイントの色と別の変数に対応する各ポイントの形状を使用して散布図を作成しようとしています。次に、いくつかのサンプルデータと、2番目のプロットの作成に使用したコードを示します。

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"

私はこれを個別に行いましたが、両方を行う方法がわかりません。以下に2つのプロットを示します。

1 enter image description here

2 enter image description here

たとえば、色を同じatt1のポイントに適用し、形状を同じatt2のポイントに適用したい

15
Nitro

ggplot2 excelsのドメインの1つは、他の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) 

enter image description here

ベースプロットでも実行できますが、凡例を手動で生成する必要があります...

plot(dat$X,dat$Y,pch=as.integer(dat$att1),col=as.integer(dat$att1))

enter image description here

20
agstudy

これは、あなたの望むことですか? [dfは上記の形式のデータです。]

library(ggplot2)
ggplot(df) + geom_point(aes(x=X,y=Y,color=factor(att1),shape=att2),size=5)

あなたのデータでこれを生成します:

3
jlhoward