Viridisは、連続的な科学データに適した、知覚的に均一なカラーマップです。
濃い紫から明るい黄色へと変化し、従来の虹色カラーマップとは異なり、データ上の等しい差が見た目にも等しい色の差として表れます。この性質により、ヒートマップや密度プロットなど、読者が色から値を読み取る科学図表に適しています。ここでは、実際によく使う段階数ごとにHEXコードをまとめます。

ViridisのHEXコード:5・8・10段階
| 段階数 | HEXコード |
|---|---|
| 5 | #440154 #3B528B #21918C #5EC962 #FDE725 |
| 8 | #440154 #46327E #365C8D #277F8E #1FA187 #4AC16D #A0DA39 #FDE725 |
| 10 | #440154 #482878 #3E4989 #31688E #26828E #1F9E89 #35B779 #6ECE58 #B5DE2B #FDE725 |
#440154(濃い紫)と#FDE725(明るい黄色)です。中間の値は段階数によって変わるため、8段階と10段階の一覧は一方が他方を含む関係ではありません。ViridisのHEXコードを示すときは、再現できるようにサンプリングした段階数も必ず併記してください。知覚的な均一性が重要な理由
従来の虹色カラーマップには、色が急激に変わる帯と、ほとんど変わらない帯があります。データが滑らかに変化していても、急変する帯は鋭い境界として見え、変化の遅い帯にある本来の構造は見落とされます。つまり、カラーマップが存在しない特徴を作り出し、別の特徴を隠してしまいます。
Viridisは、この問題を避けるよう設計されています。一方の端から他方へ明度が単調に増加し、範囲全体で知覚される変化の速さもほぼ一定です。これにより、次の2つの利点が得られます。
- グレースケールでも順序が保たれます。 明度が単調に変化するため、グレースケールへ変換しても順序は崩れません。虹色カラーマップでは中央が両端より明るくなることが多く、順序が失われます。
- 色覚特性が異なっても読み取りやすくなります。 順序を主に明度で表し、赤と緑の対比には依存しないため、読み方が保たれます。

そのまま使えるコード
Python
import matplotlib.pyplot as plt
plt.imshow(data, cmap="viridis")
# 離散サンプリング
from matplotlib import cm
from matplotlib.colors import to_hex
import numpy as np
hexes = [to_hex(cm.get_cmap("viridis")(x)).upper()
for x in np.linspace(0, 1, 8)]R
library(viridis)
scale_fill_viridis_c() # 連続型
scale_fill_viridis_d() # 離散型
viridis(8) # HEXベクトルCSS
.viridis-gradient {
background: linear-gradient(
to right,
#440154, #46327E, #365C8D, #277F8E,
#1FA187, #4AC16D, #A0DA39, #FDE725
);
}
Viridisを使わないほうがよい場面
- 順序のないカテゴリ。 処置群や生物種には自然な順序がありません。Viridisから色を選ぶと、実際にはない順位を示してしまいます。代わりにOkabe-Itoのような定性パレットを使いましょう。
- 意味のある中立点を中心に分岐するデータ。 対数変化量、気温偏差、相関には中立の中心があります。連続型のカラーマップでは、その中心が見えにくくなります。中立色を中央に置いた発散型の配色を使ってください。
#440154で描いた細い線や小さなマーカーは、単なる黒に見えることがあります。系列が少ない折れ線グラフなら、一般に定性パレットのほうが違いを伝えやすくなります。ヒント
Viridisには、同じ原理で作られたmagma、inferno、plasma、cividisがあります。なかでもcividisは、色覚特性が異なる人同士でもほぼ同じ画像として認識できるよう最適化されています。幅広い読者に向けた図では、有力な標準候補です。

関連記事
関連する読み物: 科学図表に最適なカラーパレット(2026年版), 限られた予算でNatureレベルの図を作成.



