データのお砂場(149) R言語、max_chroma_table、{colorspace}

Joseph Halfmoon

前回から colorspace パッケージに「侵入」してます。colorspaceパッケージはグラフに彩りを与えるためのお道具箱デス。素人老人の密な楽しみ、「サンプル・データ」の中にこの世の不思議、世界の秘密を発見する、には不向きなパッケージっす。含まれているのはお道具のためのデータベース、単なる数値の集まりね。

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

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

max_chroma_table

今回扱ってみるのは、colorspace パッケージ内の max_chroma_table というデータベースです。まず、colorspace パッケージの解説ページが以下に

A Toolbox for Manipulating and Assessing Colors and Palettes

そして max_chroma_table に関する説明が書かれているページが以下に。

Compute Maximum Chroma for Given Hue and Luminance in HCL

色彩素人老人は良く分かってないです。説明を読むに、max_chroma_table は、HCL空間の中で(H:hue、色相)と(L:luminance、輝度)を決めたときに最大の彩度(chroma)がいくらなのかを与えるデータベースらしいデス。データ量にして 36461要素、合計2.6MBの容量があります。なお、H、Lは整数で与えるので

    • H: 0から360まで361通り
    • L: 0から100まで101通り

だけあります。361×101=36461要素ってこと。その全ての組み合わせに対してmax chromaが表引きできるようになっておるみたいです。

なお、max chroma を表引きするための関数が用意されており、自前で max_chroma_tableを調べる必要はないみたいです。表引き関数が以下に。

max_chroma(h, l, floor = FALSE)

上記の関数に、h、l を与えればchromaの最大値が返ってきます。floor=FALSEとすると浮動小数点数で結果が返ります。floor=TRUEにすると整数に切り捨てられるみたい。

まずは生データから

今回は専用関数で参照できるデータベースなので、わざわざ個別にロードする必要もないです。しかし、いつものとおりロードしてみます。こんな感じ。max_chroma_table_RawData

ただただ数字が並んでおります、無味乾燥。

上記の解説ページに max_chroma関数の Example があったのでそれをそのまま実行してみます。max_chroma_Examples

これまた数字が列挙されるだけじゃん。ううむ。

色見本をプロットして~

やはり、色見本をプロットしないと納得いきませぬなあ。色見本をプロットするためには、swatchplot関数というのが良さげだったです。それをつかって以下のようなコードを走らせることにいたしました。

hvec = seq(0, 360, by=60)
max_chroma(h = hvec, l = 50)
swatchplot(
  "L=10"  = sequential_hcl(7, h = hvec, c = max_chroma(h = hvec, l = 10), l = 10),
  "L=25"  = sequential_hcl(7, h = hvec, c = max_chroma(h = hvec, l = 25), l = 25),
  "L=50"  = sequential_hcl(7, h = hvec, c = max_chroma(h = hvec, l = 50), l = 50),
  "L=75"  = sequential_hcl(7, h = hvec, c = max_chroma(h = hvec, l = 75), l = 75),
  "L=90"  = sequential_hcl(7, h = hvec, c = max_chroma(h = hvec, l = 90), l = 90),
  off = 0
)

上記の結果が以下に。横軸はH=0から360まで60キザミです。縦はLね。swatchplot_max_chroma

よくわからんけど色見本はプロットできたみたい。

データのお砂場(148) R言語、USSouthPolygon、{colorspace}へ戻る

データのお砂場(150) R言語、diamonds、scaleを変えてみる{ggplot2} へ進む