2

2つのデータ系列を使用して非常に単純な散布図を作成しようとしています。使用しているデータフレームの4番目の列から各ポイントの色を指定したいと思います。2つのシリーズに2つの異なるグリフを使用して、散布図自体を目的の場所に近づけましたが、色が適切なポイントに割り当てられていません。私はRにかなり慣れていないので、ここからどこに行くべきかわかりません。どんな助けでもいただければ幸いです。サンプルデータと添付されたコード(まだ画像をアップロードできません)。

サンプルデータ:

x   y   group   color
0   0   g   red
2   -1  g   blueviolet
0   -1  g   brown
2   -2  g   blueviolet
0   -11 g   blue
2   -6  g   blue
0   1   g   coral
0   -2  g   blue
2   -1  h   blueviolet
0   -1  h   brown
2   -2  h   blueviolet
0   -11 h   blue
2   -6  h   blue
0   1   h   coral
2   -8  h   blue
4   -2  h   coral
1   -5  h   brown
1   -9  h   violet
-2  2   h   blue

サンプルRコード:

ztest=read.table(file="ztest.txt",sep="\t",header=TRUE)
plot(ztest$x,ztest$y,type='n')
points(ztest[ztest$group=="g",]$x,ztest[ztest$group=="g",]$y,col=ztest$color,pch=3,cex=.75)
points(ztest[ztest$group=="h",]$x,ztest[ztest$group=="h",]$y,col=ztest$color,pch=1,cex=1.75)
4

2 に答える 2

2

答えはおそらく、read.tableで色を読み込んだときに、色が要因として解釈されているということです。試す

ztest$color <- as.character(ztest$color)

それが機能するかどうかを確認します。

または、ggplot2はこの種のものに最適です。上記を行った後、アプローチの代わりに試してください

library(ggplot2)
qplot(x,y, color=color, shape=group, data=ztest, size=group) + 
    scale_color_identity(legend=FALSE) +
    scale_shape_manual(values=c(3,1)) +
    scale_size_manual(values=c(3,6))
于 2012-06-07T23:59:53.987 に答える
1

あなたはポイントをサブセット化しているようですが、色をサブセット化していないようです。それ以外の

points(ztest[ztest$group=="g",]$x,ztest[ztest$group=="g",]$y,col=ztest$color, ...

試す

points(ztest[ztest$group=="g",]$x,ztest[ztest$group=="g",]$y,col=as.character(ztest[ztest$group=="g",]$color), ....

お役に立てれば

于 2012-06-08T03:15:29.310 に答える