1

3つの数値列を持つテーブルがあります。そのうちの2つは座標で、3つ目は色を意味します。私のテキストファイルには何百もの行があります。写真を作りたいのですが、最初の数字は各ポイントの座標を意味し、3番目の数字はポイントの色を意味します。数値が大きいほど、暗いポイントになります。どうすればこれを行うことができますか?私のファイルの行の例:

99.421875   48.921875   0.000362286050144
4

4 に答える 4

0

これがベースRソリューションです。

##Generate data
##Here z lies between 0 and 10
dd = data.frame(x = runif(100), y= runif(100), z= runif(100, 0, 10))

最初にzを正規化します。

dd$z = dd$z- min(dd$z)
dd$z = dd$z/max(dd$z)

次に、シェーディングにzのサイズを使用して、通常どおりにプロットします。

##See ?gray for other colour combinations
##pch=19 gives solid points. See ?point for other shapes 
plot(dd$x, dd$y, col=gray(dd$z), pch=19)

ここに画像の説明を入力してください

于 2013-02-18T12:46:18.340 に答える
0

lattice解決策:

library(lattice)
mydata <- matrix(c(1,2,3,1,1,1,2,5,10),nrow=3)
xyplot(mydata[,2] ~ mydata[,1], col = mydata[,3], pch= 19 , 
                           alpha = (mydata[,3]/10), cex = 15)

alphaここで透明度を制御します。

ここに画像の説明を入力してください

于 2013-02-18T12:19:22.873 に答える
0

これでいいですか?

require(ggplot2)
# assuming your data is in df and x,y, and col are the column names.
ggplot(data = df, aes(x = x, y = y)) + 
           geom_point(colour="red", size = 3, aes(alpha=col))

# sample data

set.seed(45) 
df <- data.frame(x=runif(100)*sample(1:10, 100, replace=T), 
                 y= runif(100*sample(1:50, 100, replace=T)), 
                 col=runif(100/sample(1:100)))

プロット:

ggplot2_alpha

于 2013-02-18T12:38:44.657 に答える
0

ベースを使用する別の解決策...色を変更するには、データ[、3]の一部を0に置き換えることができます。rgb()

n <- 1000
data <- data.frame(x=runif(n),y=runif(n),col=runif(n))
plot(data[,1:2],col=rgb(data[,3],data[,3],data[,3],maxColorValue = max(data[,3])),pch=20)
于 2013-02-18T12:47:18.280 に答える