本文へスキップ
からだにいいもの

Rのトピックスを中心に『まだ、まだ、知らない、役に立つ情報?』を発信します。

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

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

新たな提案として「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)
#プロットエリアの設定
par(bg = "lightgray")
plot(0:1, 0:1, type = "n", axes = FALSE, xlab = "", ylab = "")
#枠線の表示
box()
#軸の設定
xRange <- seq(0, 1, by = 1/length(AlphaSeq))
#グラフ幅の設定
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)
}

#以下参考 #色覚による見え方を再現
#dichromatパッケージがなければインストール
if(!require("dichromat", quietly = TRUE)){
  install.packages("dichromat");require("dichromat")
}

#1型色覚のviridisの見え方
rasterImage(as.raster(dichromat(viridis(n = 256, alpha = AlphaSeq[n]), "protan")),
            0, 0, 1, 1, interpolate = FALSE)

#2型色覚のviridisの見え方
rasterImage(as.raster(dichromat(viridis(n = 256, alpha = AlphaSeq[n]), "deutan")),
            0, 0, 1, 1, interpolate = FALSE)

#3型色覚のviridisの見え方
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

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

スポンサーリンク
Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.