RColorBrewer Paletteで可視化色をマスターする!(逐次型・発散型・カテゴリ型完全ガイド)

データビジュアライゼーションをしていると、「どのような色を使った方が見栄えが良いのか」という悩みに陥ることがあります。 特に Rをお使いの方であれば、この悩みはより一層実感できるでしょう。 でも、心配しないでください!今日は RColorBrewerパレットを活用してデータに命を吹き込む方法を紹介します。

逐次型、発散型、カテゴリ型パレットの違いや活用法まですべて網羅しています。 最後まで読んでいただければ、データビジュアライゼーションがもっと楽しくなるはずです!

RColorBrewer Paletteとは?

RColorBrewerはRで提供するカラーパレットパッケージで、データ可視化のための様々な色の組み合わせを提供します。特に、 シーケンシャル(Sequential), 発散型(Diverging), カテゴリー型(Qualitative) パレットを提供し、データの特性に合った色を簡単に選択することができます。

パレットの種類と特徴

1.シーケンシャルパレット

  • 特徴:低い値から高い値へ進むデータを表現する場合に適しています。
  • 温度変化、売上増加など
  • パレット一覧: 全部で18個あります。
    • Blues, BuGn, BuPu, GnBu, Greens, Greys
    • オレンジ、OrRd、PuBu、PuBuGn、PuRd、Purples
    • RdPu, Reds, YlGn, YlGnBu, YlOrBr, YlOrRd
  • 活用法: 下記のコードを通して、次のような順次パレットの色を確認することができます。
  library(RColorBrewer)
  display.brewer.pal(n = 9, name = "Blues")
RColorBrewer Palette - 순차적 팔레트 예시 이미지

2.発散型パレット

  • 特徴:中央値を基準に両極端の値を強調するときに使用されます。
  • 気温の変化(平均気温に対する上昇/下降), 利益と損失
  • パレット一覧: 全部で9つあります。
    • BrBG, PiYG, PRGn, PuOr
    • RdBu, RdGy, RdYlBu, RdYlGn, Spectral
  • 活用法:以下のコードを通して次のような発散型パレットの色を確認することができます。
  display.brewer.pal(n = 11, name = "RdBu")
RColorBrewer Palette - 발산형 팔레트 예시 이미지

3.カテゴリ型(Qualitative)パレット

  • 特徴: 異なるカテゴリーを区別するのに適しています。
  • 国別売上高、カテゴリー別分類
  • パレット一覧: 全部で8つあります。
    • アクセント(8色)、Dark2(8色)、Paired(12色)
    • Pastel1(9色)、Pastel2(8色)、Set1(9色)
    • Set2 (8色), Set3 (12色)
  • 活用法:以下のコードを通して、次のようなカテゴリ型パレットの色を確認することができます。
  display.brewer.pal(n = 8, name = "Set1")
RColorBrewer Palette - 범주형 팔레트 예시 이미지

パレットリストの確認と可視化

1.パレット全体を確認する

下記のコードを実行すると、上で紹介したパレットの全てのリストと色を確認することができます。

library(RColorBrewer)
display.brewer.all()
RColorBrewer Palette - 전체 팔레트 예시 이미지

2.パレットの種類を確認する

下記のコードを実行すると、タイプ別にパレットのリストと色をそれぞれ確認することができます。

# シーケンシャルパレットのみ表示
display.brewer.all(type = "seq")

# 発散型パレットのみ見る
display.brewer.all(type = "div")

# カテゴリ型パレットのみ表示
display.brewer.all(type = "qual")
RColorBrewer Palette - 순차적 팔레트 이미지
( 逐次パレットリストと色 )
RColorBrewer Palette - 발산형 팔레트 이미지
( 発散型パレット一覧とカラー )
RColorBrewer Palette - 발산형 팔레트 이미지
( カテゴリ型パレット一覧と色 )

パレットを活用したデータ可視化の例

1.シーケンシャル(Sequential)パレットを活用したヒートマップ

순차적(Sequential) 팔레트를 활용한 히트맵
#パッケージの読み込み
ライブラリ(RColorBrewer)

# データ生成
set.seed(123)
data <- matrix(rnorm(100), nrow=10)
colnames(data) <- paste0("Col", 1:10)
rownames(data) <- paste0("Row", 1:10)

# ヒートマップ描画
heatmap(data、
col = brewer.pal(9, "Blues")、
main = "
ヒートマップにシーケンシャルパレットを利用する",
margins = c(5,5))

コード解釈

  • set.seed(123):
    • 乱数生成の再現性を確保するために、シード値を設定します。同じコードを実行するたびに同じ乱数を生成します。
  • matrix(rnorm(100), nrow=10):
    • 平均が0、標準偏差が1である正規分布から100個の乱数を生成し、10行で構成された行列を作成します。
  • colnames(data) <- paste0("Col", 1:10):
    • 列名を"Col1", "Col2", ..., "Col10″と指定します。
  • rownames(data) <- paste0("Row", 1:10):
    • 行名を"Row1", "Row2", ..., "Row10″と指定します。
  • ヒートマップ():
    • 与えられたデータをヒートマップで可視化します。
  • col = brewer.pal(9, "Blues"):
    • RColorBrewerの順次パレットの一つである "ブルース" パレットを使用してヒートマップの色を設定します。 brewer.pal(9, "Blues")は "ブルース" パレットから9色を返します。
  • main = "ヒートマップにシーケンシャルパレットを使う":
    • ヒートマップのタイトルを設定します。
  • margins = c(5,5):
    • ヒートマップの行と列の名前が表示されるマージンサイズを指定します。

2.発散型(Diverging)パレットを活用したタイルマップ

발산형(Diverging) 팔레트를 활용한 타일맵
#パッケージの読み込み
ライブラリ(RColorBrewer)

# データ生成
set.seed(123)
df <- data.frame(
x = rep(1:10, each=10)、
y = rep(1:10, times=10)、
value = rnorm(100)
)

# ggplotでタイルマップを描画する
library(ggplot2)
ggplot(df, aes(x=x, y=y, fill=value)) +...
geom_tile() +...
scale_fill_distiller(palette = "RdBu", 方向 = 1) +...
theme_minimal() +...
labs(title = "
タイルマップにダイバージェントパレットを使う",
x = "X軸", y = "Y軸")

コード解釈

RColorBrewerです:データ可視化のためのカラーパレットを提供するパッケージです。

ggplot2です:データ可視化のための強力なグラフパッケージで、様々なタイプのグラフを作成することができます。

  • set.seed(123):乱数生成の再現性を確保するためにシード値を設定します。同じコードを実行するたびに同じ結果を得ることができます。
  • data.frame()を表示します:データをX軸、Y軸、そして各座標の値を表します。 価値 列で構成されたデータフレームで作成します。
    • x1~10の値を各値を10回ずつ繰り返す。
    • y1~10の値を合計10回繰り返す。
    • 価値: 平均が0、標準偏差が1である正規分布から乱数を生成。
  • ggplot(df, aes(x=x, y=y, fill=value)):
    • ggplot() 関数はデータフレーム(df)に基づいてビジュアライゼーションを生成します。
    • aes()は可視化の軸とカラーマッピングを定義します:
      • x=xX軸に x サーマルマッピング。
      • y=yY軸に y サーマルマッピング。
      • fill=valueタイルの色 : タイルの色を 価値 値に応じた設定。
  • geom_tile():
    • タイルマップを生成する関数で、各 (x, y) 座標に対応する正方形を描きます。
  • scale_fill_distiller(palette = "RdBu", direction = 1):
    • RColorBrewerの発散型パレット "RdBu"を使用して色を設定します。
      • "RdBu":赤(Red)と青(Blue)を使用し、中間値から両極端の色が対比されます。
      • 方向=1: 基本方向にパレットを適用します。
  • theme_minimal():
    • グラフの不要な要素を取り除き、すっきりしたスタイルを適用します。
  • labs():
    • グラフタイトルと軸名を設定します:
      • タイトル: "タイルマップに発散パレットを使う".
      • X軸の名前: "X軸".
      • Y軸の名前: "Y軸".

3.カテゴリ型(Qualitative)パレットを活用した棒グラフ

3. 범주형(Qualitative) 팔레트를 활용한 막대 그래프
#パッケージの読み込み
ライブラリ(RColorBrewer)

# データ生成
カテゴリ <- c("A", "B", "C", "D", "E")
値 <- c(23, 45, 32, 58, 29)
df <- data.frame(categories, values)

# バーグラフの描画
ggplot(df, aes(x=categories, y=values, fill=categories)) +...
geom_bar(stat="identity")+。
scale_fill_brewer(palette="Set3")+。
theme_minimal() +...
labs(title = "Using a Qualitative Palette for a Bar Chart"、
x = "カテゴリ", y = "値")

コード解釈

RColorBrewerです:データ可視化のためのカラーパレットを提供するパッケージです。

ggplot2です:データ可視化のための強力なグラフパッケージで、様々なタイプのグラフを作成することができます。

  • カテゴリー:棒グラフのX軸に表示されるカテゴリ型データです。ここでは「A」、「B」、「C」、「D」、「E」というカテゴリを定義します。
  • 価値観: 各カテゴリに対応する値でY軸に表示されます。
  • data.frame()カテゴリーと 価値観を組み合わせてデータフレーム(df)を作成します。
  • ggplot(df, aes(x=categories, y=values, fill=categories)):
    • ggplot() 関数はデータに基づいてグラフを生成します。
    • aes()は可視化の軸と色をマップします:
      • x=categoriesX軸に カテゴリー サーマルマッピング。
      • y=値Y軸に 価値観 サーマルマッピング。
      • fill=categories: バーの色を各カテゴリーごとに異なる色に設定します。
  • geom_bar(stat="identity"):
    • 棒グラフを生成し、各棒の高さはデータ(価値観)の値によって設定されます。
  • scale_fill_brewer(palette="Set3"):
    • RColorBrewerのカテゴリー型パレット "セット3"を使用してバーの色を設定します。 "セット3"は、さまざまなカテゴリを区別するためにさまざまな色を提供しています。
  • theme_minimal():
    • グラフの不要な要素を取り除き、すっきりしたスタイルを適用します。
  • labs():
    • グラフタイトルと軸名を設定します:
      • タイトル: "棒グラフに定性パレットを使う".
      • X軸の名前: "カテゴリー".
      • Y軸の名前: "価値".

仕上げ

RColorBrewerはデータ可視化のための強力なツールです。 これを利用して、パレットタイプ別にヒートマップ、タイルマップ、 棒グラフ 例を見てみました。

逐次的なデータには明るい色から暗い色へ進む逐次パレットを使用し、中間値と極端な値を強調するには発散型パレットを選択します。カテゴリを区別する必要がある場合は、カテゴリ型パレットを活用します。

RColorBrewerを使えば、データがより生き生きとして理解しやすくなります。 今すぐRColorBrewerを使って素敵なビジュアライゼーションを作成しましょう!

테리 이모티콘
( 楽しくコーディングしましょう! )

類似の投稿