3

ハドリー・ウィッカムのggplot2 bookから図 6.11 を複製しようとしています。これは、Luv 空間で R の色をプロットします。ポイントの色はそれ自体を表し、凡例は必要ありません。 ここに画像の説明を入力

ここに2つの試みがあります:

library(colorspace)
myColors <- data.frame("L"=runif(10000, 0,100),"a"=runif(10000, -100, 100),"b"=runif(10000, -100, 100))
myColors <- within(myColors, Luv <- hex(LUV(L, a, b)))
myColors <- na.omit(myColors)
g <- ggplot(myColors, aes(a, b, color=Luv), size=2)
g + geom_point() + ggtitle ("mycolors")

ここに画像の説明を入力

2 回目の試行:

other <- data.frame("L"=runif(10000),"a"=runif(10000),"b"=runif(10000))
other <- within(other, Luv <- hex(LUV(L, a, b)))
other <- na.omit(other)
g <- ggplot(other, aes(a, b, color=Luv), size=2)
g + geom_point() + ggtitle("other")

ここに画像の説明を入力

明らかな問題がいくつかあります。

  1. これらのグラフは図のようには見えません。必要なコードに関する提案はありますか?
  2. 最初の試行では、Luv 列に多くの NA フィールドが生成されます (2 回目の実行では ~9950 であるのに対し、10,000 回の実行のうち ~3100 の名前付きの色のみ)。L が 0 から 100 の間で、u が -100 から 100 の間であると想定されている場合、最初の実行でこれほど多くの NA があるのはなぜですか? 丸めてみましたが、役に立ちません。
  3. なぜ私は伝説を持っているのですか?

どうもありがとう。

4

1 に答える 1

5

aes(color = Luv)「列の一意の文字列ごとに色を割り当てる」と表示されているため、奇妙な色になっていますLuvcolor以下のように、の外側に割り当てる場合はaes、「これらの明示的な色を使用する」ことを意味します。このようなものは、あなたが提示した図に近いはずだと思います。

require(colorspace)
x <- sRGB(t(col2rgb(colors())))
storage.mode(x@coords) <- "numeric" # as(..., "LUV") doesn't like integers for some reason
y <- as(x, "LUV")
DF <- as.data.frame(y@coords)
DF$col <- colors()
ggplot(DF, aes( x = U, y = V)) + geom_point(colour = DF$col)
于 2013-02-12T07:11:04.003 に答える