5

変数の値をRのスキャッター内のドットの色として表現したいと思います。

x <- rnorm(100) + 5
y <- rnorm(100) + 5
plot(x, y)

ここでは、色付けの入力として変数を使用したいと思います。でもやってみたら

plot(x, y, col = x)

おそらく明らかに、奇妙なことが起こります。今、私はこのように欲しいものを手に入れることができます:

x_norm = (x - min(x)) / (max(x) - min(x))
col_fun <- colorRamp(c("blue", "red"))
rgb_cols <- col_fun(x_norm)
cols <- rgb(rgb_cols, maxColorValue = 256)
plot(x, y, col = cols)

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

しかし、それは少し複雑に思えます。たとえば、色として黒を指定するなどして、NAまたはNaN値で機能させるのはそれほど簡単ではありません。私のため。私が見落としているこれを行う簡単な方法はありますか?

4

2 に答える 2

8

cutx を間隔に分割し、colorRampPalette固定サイズのパレットを作成するために使用する必要があります。

x <- rnorm(100) + 5
y <- rnorm(100) + 5
maxColorValue <- 100
palette <- colorRampPalette(c("blue","red"))(maxColorValue)
plot(x, y, col = palette[cut(x, maxColorValue)])
于 2013-02-14T22:23:35.890 に答える
1

次のように、定義済みのグレースケール色を使用できgray0ます...gray99

x <- rnorm(100) + 5
y <- rnorm(100) + 5
x.renormed <- floor(100*((x-min(x))/(diff(range(x))+1e-2)))
colors.grayscale <- paste("gray",x.renormed,sep="")
plot(x, y, col=colors.grayscale, bg=colors.grayscale,pch=21)

結果:

グレースケール散布図

于 2013-02-15T15:55:22.440 に答える