5

image.rgb画像の各座標のr、g、b値をロードしたデータフレームがあります(jpegおよびreshapeパッケージを使用)。次のようになります。

> head(image.rgb)
   y x         r         g         b
1 -1 1 0.1372549 0.1254902 0.1529412
2 -2 1 0.1372549 0.1176471 0.1411765
3 -3 1 0.1294118 0.1137255 0.1176471
4 -4 1 0.1254902 0.1254902 0.1254902
5 -5 1 0.1254902 0.1176471 0.1294118
6 -6 1 0.1725490 0.1372549 0.1176471

今、ggplot2 を使用してこの「画像」をプロットしたいと思います。次を使用して、特定の「チャネル」(赤または緑または青)を一度に1 つずつプロットできます。

ggplot(data=image.rgb, aes(
            x=x, y=y,
            col=g) #green for example
       ) + geom_point()

...デフォルトのggplot2カラースケールで

指定した列から正確な RGB 値を取得できるように指定する方法はありますか?

パッケージplot内の関数を使用して、使用できますbase

with(image.rgb, plot(x, y, col = rgb(r,g,b), asp = 1, pch = "."))

しかし、ggplot2 を使用してこれを実行できるようにしたいと思います

4

1 に答える 1

9

scale_color_identity色を「そのまま」取得するには、次を追加する必要があります。

ggplot(data=image.rgb, aes(x=x, y=y, col=rgb(r,g,b))) + 
    geom_point() + 
    scale_color_identity()

あなたが提供したサンプル データは非常に似た色を示しているため、すべての点が黒く見えます。異なる色を使用geom_tileすると、もう少し見やすくなります:

ggplot(data=image.rgb, aes(x=x, y=y, fill=rgb(r,g,b))) +
    geom_tile() +
    scale_fill_identity()

ここに画像の説明を入力

于 2013-10-10T07:37:24.490 に答える