データのお砂場(154) R言語、luv_colours、Luv色空間?{ggplot2}

Joseph Halfmoon

第148回と、第149回で色空間なるものにちょいと触れた朧げな記憶があるのです。しかし、忘却力の年寄はもういけません。今回はLuv色空間についてのサンプル・セータ・セットらしいのですが、Luv色空間っていったいなんだったけ?あれ、過去回ではやってなかった?素人老人は理解もせず、ただ飛び込むのみ。見る前に飛べってか。

※「データのお砂場」投稿順Indexはこちら

※使用させていただいている Rのversionは 4.3.1。RStudioは 2024.04.2+764 “Chocolate Cosmos” です。

luv_colours

ggplot2パッケージのluv_coloursについての解説ページが以下に。

colors() in Luv space

Rでは、whiteとかredとか、色を表す単語を使って「色」を指定可能です。しかしその色を表すお言葉がどんな「色」であるのか数値で説明せよ、と言われるとお惚け老人は分かりませぬ。今回のサンプルデータセットを使えば、各お言葉がLUV空間の中のどんな数値に対応しているのか一目瞭然?なのかもしれませせぬ。

しかし、LUV空間って何?素人老人には説明できませぬなあ。『シーシーエス株式会社』様の以下のページ

第32回 色差 と 均等色空間

あるいは、『COCOLOR(ココカラー)代表 都外川八恵』様の

L*u*v*表色系(CIE1976L*u*v*色空間)〜様々な表色系vol.9

などを拝見させていただきました。分かったような分からぬような。。。

先ずは生データ

さて、ggplot2パッケージ内のサンプルデータであるので、まずはライブラリのロードから始めます。こんな感じ。luv_colours_RawData

サンプルデータそのものは、4変数のデータフレームであり、LUVについては数値(浮動小数値)が、colとある色名を示す変数には何やら色を示す「お言葉」が詰まってます。

LUV空間の中の1点に色のお名前を対応付けるようなデータベースであることは一目瞭然。

ただし、よく分からんのは、L、U、Vの値そのものです。10のマイナス12乗ととてつもなく小さくなるかと思えば、10000くらいの値になることもあり結構ダイナミックレンジ広いっす。上の参考文献等にあるL*、U*、V*あるいは、u’、v’ とかいうものどもとの関係を老人は理解できておりませぬ。なんじゃらほい。

素人が唸っていても埒が明かないので、あきらめて先へ進みます。

プロット

なんといっても ggplot2のサンプルデータなのでプロットしてみるってもんでしょ。ということで最初のステップが以下に。

v <- ggplot(luv_colours, aes(u, v)) + geom_point(aes(colour = col), size = 3)
v

上記で得られる「プロット」が以下に。luv_colours_v

上記では「一部のみプロット」されているようですが、657点全てについて、色見本的なものを描いてくれようとするみたいです。縦横は「表形式」になるようにスケーリングしてくれている?

それにしても色の差が微妙過ぎて老眼の年寄にはよくわからんぜよ。

そこで処理例を参考に以下のようにしてみます。

v + scale_color_identity()

上記の scale_color_identity()は何やらスケーリングを抑止するための関数みたいです。結果は、

luv_colours_v2
uとvの空間の中に色見本どもが散りばめられる結果となりました。ただし、u軸とv軸の目盛りは同じ間隔ではないようです。そこで

v + scale_color_identity() + coord_fixed()

のように coord_fixed()を使ってアスペクト・レシオを固定化してみるとこんな感じ。luv_colours_EC

参考資料等で、LUV色空間の説明のために掲げられているページ(そこでは連続な図形)に似た「点描」プロットが得られました(単位は分からんけど。)

素人はわけも分からず。

データのお砂場(153) R言語、faithfuld、間欠泉の2D密度?{ggplot2}へ戻る