Rで解析:カラーパレットをコンソールで表示など「prismatic」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

簡単かつ直感的にカラーパレットをコンソールで表示、明度、彩度などの変更、色覚変異のシミュレーションやRGBスケールの反対色作成などのコマンドが収録されたパッケージの紹介です。カラーパレットで悩んでいることがあった場合に利用してはいかがでしょうか。

すべてのコマンドは「plot」コマンドと組み合わせるとプロットが可能です。

パッケージのバージョンは1.2.0。実行コマンドはRStudioのRStudio Desktop 2021.09.2+382、windows 11のR version 4.1.2で確認しています。

スポンサーリンク

パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("prismatic")

実行コマンド

詳細はコメント、パッケージヘルプを確認してください。なお、画像は「からだにいいもの」のロゴマークを使用しました。

・ロゴマーク

#パッケージの読み込み
library("prismatic")

###データ例の作成#####
#画像からカラーパレットを作成
#興味があれば下記記事を確認ください。
#「Rで解析:オリジナルのカラーパレットを作りませんか?「RImagePalette」パッケージ」
#https://www.karada-good.net/analyticsr/r-346/
#パッケージの読み込み
library("tcltk")
#RImagePaletteパッケージがなければインストール
if(!require("RImagePalette", quietly = TRUE)){
  install.packages("RImagePalette");require("RImagePalette")
}
#jpegパッケージがなければインストール
if(!require("jpeg", quietly = TRUE)){
  install.packages("jpeg");require("jpeg")
}
#jpegファイルの読み込み:「jpeg」パッケージのreadJPEGコマンドを使用
Image <- readJPEG(paste0(as.character(tkgetOpenFile(title = "&#30011;&#20687;&#12434;&#36984;&#25246;",
                                                    filetypes = '{"&#30011;&#20687;&#12501;&#12449;&#12452;&#12523;" {".jeg"}}',
                                                    initialfile = "*.*"))))
#&#30011;&#20687;&#12501;&#12449;&#12452;&#12523;&#12363;&#12425;&#12459;&#12521;&#12540;&#12497;&#12524;&#12483;&#12488;&#12434;&#20316;&#25104;:image_palette&#12467;&#12510;&#12531;&#12489;
GetCol <- image_palette(Image, n = 5, choice = median)
########

#&#12459;&#12521;&#12540;&#12467;&#12540;&#12489;&#12392;&#33394;&#12434;&#34920;&#31034;:color&#12467;&#12510;&#12531;&#12489;
#&#12458;&#12503;&#12471;&#12519;&#12531;&#12467;&#12510;&#12531;&#12489;&#12399;&#28961;&#12375;
color(GetCol)

#&#12464;&#12524;&#12540;&#12473;&#12465;&#12540;&#12523;&#12375;&#12383;&#12459;&#12521;&#12540;&#12467;&#12540;&#12489;&#12392;&#33394;&#12434;&#34920;&#31034;:clr_grayscale&#12467;&#12510;&#12531;&#12489;
#&#12464;&#12524;&#12540;&#12473;&#12465;&#12540;&#12523;&#12398;&#26041;&#27861;:method&#12458;&#12503;&#12471;&#12519;&#12531;
#"luma","averaging","min_decomp","max_decomp","red_channel",
#"green_channel","blue_channel"
clr_grayscale(GetCol, method = "averaging")

#&#26126;&#24230;&#12434;&#19978;&#12370;&#12390;&#12459;&#12521;&#12540;&#12467;&#12540;&#12489;&#12392;&#33394;&#12434;&#34920;&#31034;:clr_lighten&#12467;&#12510;&#12531;&#12489;
#&#26126;&#24230;&#35519;&#25972;:shift&#12458;&#12503;&#12471;&#12519;&#12531;
#&#12459;&#12521;&#12540;&#12473;&#12506;&#12540;&#12473;:space&#12458;&#12503;&#12471;&#12519;&#12531;:"HCL","HSL","combined"
clr_lighten(GetCol, shift = 0.3, space = "combined")

#&#26126;&#24230;&#12434;&#19979;&#12370;&#12390;&#12459;&#12521;&#12540;&#12467;&#12540;&#12489;&#12392;&#33394;&#12434;&#34920;&#31034;:clr_darken&#12467;&#12510;&#12531;&#12489;
#&#26126;&#24230;&#35519;&#25972;:shift&#12458;&#12503;&#12471;&#12519;&#12531;
#&#12459;&#12521;&#12540;&#12473;&#12506;&#12540;&#12473;:space&#12458;&#12503;&#12471;&#12519;&#12531;:"HCL","HSL","combined"
clr_darken(GetCol, shift = 0.3, space = "combined")

#&#24425;&#24230;&#12434;&#19978;&#12370;&#12390;&#12459;&#12521;&#12540;&#12467;&#12540;&#12489;&#12392;&#33394;&#12434;&#34920;&#31034;:clr_saturate&#12467;&#12510;&#12531;&#12489;
#&#24425;&#24230;&#35519;&#25972;:shift&#12458;&#12503;&#12471;&#12519;&#12531;
clr_saturate(GetCol, shift = 0.3)

#&#24425;&#24230;&#12434;&#19979;&#12370;&#12390;&#12459;&#12521;&#12540;&#12467;&#12540;&#12489;&#12392;&#33394;&#12434;&#34920;&#31034;:clr_desaturate&#12467;&#12510;&#12531;&#12489;
#&#24425;&#24230;&#35519;&#25972;:shift&#12458;&#12503;&#12471;&#12519;&#12531;
clr_desaturate(GetCol, shift = 0.3)

#RGB&#12473;&#12465;&#12540;&#12523;&#12398;&#21453;&#23550;&#12391;&#12459;&#12521;&#12540;&#12467;&#12540;&#12489;&#12392;&#33394;&#12434;&#34920;&#31034;:clr_desaturate&#12467;&#12510;&#12531;&#12489;
#c(10, 255, 0)&#12399;c(245, 0, 255)&#12392;&#12394;&#12427;
#&#12458;&#12503;&#12471;&#12519;&#12531;&#12467;&#12510;&#12531;&#12489;&#12399;&#28961;&#12375;
clr_negate(GetCol)

#&#33394;&#30456;&#12434;&#22238;&#36578;&#12375;HCL&#12391;&#12459;&#12521;&#12540;&#12467;&#12540;&#12489;&#12392;&#33394;&#12434;&#34920;&#31034;:clr_rotate&#12467;&#12510;&#12531;&#12489;
#&#22238;&#36578;&#24230;:degrees&#12458;&#12503;&#12471;&#12519;&#12531;;0-360&#12398;&#31684;&#22258;
clr_rotate(GetCol, degrees = 90)

###&#33394;&#35226;&#22793;&#30064;&#12398;&#12471;&#12511;&#12517;&#12524;&#12540;&#12471;&#12519;&#12531;&#12391;&#12459;&#12521;&#12540;&#12467;&#12540;&#12489;&#12392;&#33394;&#12434;&#34920;&#31034;#####
#&#36196;&#12458;&#12503;&#12471;&#12531;&#36986;&#20253;&#23376;&#12398;&#22793;&#30064;(&#31532;1&#33394;&#30450;):clr_protan&#12467;&#12510;&#12531;&#12489;
#&#26465;&#20214;:severity&#12458;&#12503;&#12471;&#12519;&#12531;;ON:1,OFF:0
clr_protan(GetCol, severity = 1)
#&#32209;&#12458;&#12503;&#12471;&#12531;&#36986;&#20253;&#23376;&#12398;&#22793;&#30064;(&#31532;2&#33394;&#30450;):clr_deutan&#12467;&#12510;&#12531;&#12489;
#&#26465;&#20214;:severity&#12458;&#12503;&#12471;&#12519;&#12531;;ON:1,OFF:0
clr_deutan(GetCol, severity = 1)
#&#38738;&#12458;&#12503;&#12471;&#12531;&#36986;&#20253;&#23376;&#12398;&#22793;&#30064;(&#31532;3&#33394;&#30450;):clr_tritan&#12467;&#12510;&#12531;&#12489;
#&#26465;&#20214;:severity&#12458;&#12503;&#12471;&#12519;&#12531;;ON:1,OFF:0
clr_tritan(GetCol, severity = 1)

###&#21442;&#32771;:&#20840;&#12390;&#12398;&#12467;&#12510;&#12531;&#12489;&#12399;plot&#12467;&#12510;&#12531;&#12489;&#12392;&#20351;&#29992;&#12391;&#12365;&#12427;#####
#color&#12467;&#12510;&#12531;&#12489;
plot(color(GetCol))
#clr_deutan&#12467;&#12510;&#12531;&#12489;
plot(clr_deutan(GetCol, severity = 1))

出力例

・コンソールでの表示

・plot(color(GetCol))

・plot(clr_deutan(GetCol, severity = 1))


少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました