Rで解析:視認性の高いカラーパレットの1つです。「viridis」パッケージの紹介

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

ユニバーサルかつ視認性の高いカラーパレットの確立は永遠の課題です。何か良い方法はないのでしょうか。一つの解決方法として、アニメの配色が解決策の一つではないかと考えています。

新たな提案として「viridis」パッケージが登場しました。合わせて、参考までに色覚による見え方を再現する「dichromat」パッケージを紹介します。

「viridis」サイトも合わせて確認いただければと思います。
https://cran.r-project.org/web/packages/viridis/vignettes/intro-to-viridis.html

パッケージのバージョンは0.6.2。実行コマンドはwindows 11のR version 4.1.2で確認しています。


スポンサーリンク

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

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

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

実行コマンド

詳細はコメント、パッケージヘルプを確認してください。

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

#viridisカラーパレット:viridisコマンド
#グラデーション数:nオプション
#透明度:alphaオプション
#透明度の設定
AlphaSeq <- seq(0.2, 1, by = 0.2)
#&#12503;&#12525;&#12483;&#12488;&#12456;&#12522;&#12450;&#12398;&#35373;&#23450;
par(bg = "lightgray")
plot(0:1, 0:1, type = "n", axes = FALSE, xlab = "", ylab = "")
#&#26528;&#32218;&#12398;&#34920;&#31034;
box()
#&#36600;&#12398;&#35373;&#23450;
xRange <- seq(0, 1, by = 1/length(AlphaSeq))
#&#12464;&#12521;&#12501;&#24133;&#12398;&#35373;&#23450;
xWidth <- seq(1/length(AlphaSeq), 1, by = 1/length(AlphaSeq))
for(n in seq(AlphaSeq)){
  rasterImage(as.raster(viridis(n = 256, alpha = AlphaSeq[n])),
              xRange[n], 0, xWidth[n], 1, interpolate = FALSE)
}

#&#20197;&#19979;&#21442;&#32771; #&#33394;&#35226;&#12395;&#12424;&#12427;&#35211;&#12360;&#26041;&#12434;&#20877;&#29694;
#dichromat&#12497;&#12483;&#12465;&#12540;&#12472;&#12364;&#12394;&#12369;&#12428;&#12400;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;
if(!require("dichromat", quietly = TRUE)){
  install.packages("dichromat");require("dichromat")
}

#1&#22411;&#33394;&#35226;&#12398;viridis&#12398;&#35211;&#12360;&#26041;
rasterImage(as.raster(dichromat(viridis(n = 256, alpha = AlphaSeq[n]), "protan")),
            0, 0, 1, 1, interpolate = FALSE)

#2&#22411;&#33394;&#35226;&#12398;viridis&#12398;&#35211;&#12360;&#26041;
rasterImage(as.raster(dichromat(viridis(n = 256, alpha = AlphaSeq[n]), "deutan")),
            0, 0, 1, 1, interpolate = FALSE)

#3&#22411;&#33394;&#35226;&#12398;viridis&#12398;&#35211;&#12360;&#26041;
rasterImage(as.raster(dichromat(viridis(n = 256, alpha = AlphaSeq[n]), "tritan")),
            0, 0, 1, 1, interpolate = FALSE)

出力例

・viridisコマンド

・1型色覚でのviridisの見え方

dichromatRG

・2型色覚でのviridisの見え方

・3型色覚でのviridisの見え方

dichromatGB

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

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