R 使い方 カラーパレット RColorBrewer 透明な色とグラフ

RColorBrewerは便利でよく使われるパッケージです。色々な色の組み合わせを簡単に使うことができます。しかし、複数のグラフを重ねたときに、透過度を簡単に設定できないのは使いにくく感じる場合があります。色の透過度を設定する方法を調べました。尚、デフォルトで用意されているカラーパレットは、オプションで透過度を設定できます。

とにかく早く問題解決したい人はこちら>>直接、データ解析相談

RColorBrewer 使い方

インストール

他のパッケージのインストール作業と同様、Rを管理者権限で起動して以下のコマンドを入力します。以降、表示される指示に従ってインストールします。

install.packages("RColorBrewer")

使い方

他のパッケージのインストール作業と同様、はじめにlibraryでパッケージをロードして使います。

パレットの確認

用意されているカラーパレットは、display.brew.all()関数で、「名前」と「色の組み合わせ」「色数」を確認することができます。

R> 
library(RColorBrewer)
display.brewer.all()

パレットを使う

brewer.pal関数で「色数」と「パレット名」を指定して、使いたいパレットを呼び出します。得られたパレットをグラフのcolオプションに指定して使います。「色数」はそれぞれのパレットで決まっています。超える値をセットすると、パレットの色は循環して使われます。

R> 
library(RColorBrewer)
pie(rep(1,11), col=brewer.pal(11, "Spectral")) #色数11が最大(Spectral)
R> 
pie(rep(1,12), col=brewer.pal(12, "Spectral")) #色が最大(11)を超えると循環する

RColorBrewer 透過度の設定

透過度を設定する関数

adjustcolor関数を使って透過度を設定することができます。関数には、「カラーパレットで選んだ色」・「透過度(alpha)」を渡します。透過度については、alpha=1で不透明、値が小さくなるとより透明になります。

色を透明にして複数のグラフを重ねる(RColorBrewer)

はじめに、RColorBrewerのカラーパレットを生成します。次に、「透過度を設定したい色」・「透過度」を指定してadjustcolor関数を呼びます。最後に、戻り値(透過度が設定された色)を変数に保存するか・戻り値を直接使って、グラフのcolオプションに設定します。

R> 
library(RColorBrewer)

cols = brewer.pal(2, "Pastel1")  # カラーパレット生成
my_color1 <- adjustcolor(cols[1], alpha=0.4) # 色を保存する

# 保存した色を設定
hist(
  rnorm(1000, mean=-2, sd=1), 
  xlim=c(-10, 10), ylim=c(0, 250),
  col=my_color1, 
  main="rnorm", xlab="range")

# adjustcolor関数の戻り値を直接設定
hist(
  rnorm(1000, mean=2, sd=1),
  xlim=c(-10, 10), ylim=c(0, 250),
  col=adjustcolor(cols[2], alpha=0.4),
  main="rnorm", xlab="range",
  add=TRUE)

透過度あり

透過度なし(adjustcolor関数を使わなかった場合)

デフォルトカラーパレット 透過度の設定

色を透明にして複数のグラフを重ねる(rainbowカラーパレット)

デフォルトのカラーパレット(rainbow・heat.colors・cm.colorsなど)には、透過度を設定するオプションalphaが用意されているので、カラーパレット生成時に透過度を設定して使います。指定しない場合、alpha=1なので不透明です。値が小さくなるとより透明になります。

R> 
my_color = rainbow(12, alpha=0.4)

hist(
  rnorm(1000, mean=-2, sd=1), 
  xlim=c(-10, 10), ylim=c(0, 250),
  col=my_color[7],
  main="rnorm", xlab="range")
hist(
  rnorm(1000, mean=2, sd=1),
  xlim=c(-10, 10), ylim=c(0, 250),
  col=my_color[11],
  main="rnorm", xlab="range",
  add=TRUE)

実験データの解析や論文用グラフ作成のヒントになりそうな、プログラミング・統計処理の参考になる書籍をまとめて紹介しています。是非、参考にしてみて下さいね。

論文・データ解析の支援

個別に直接相談できるのが良いと、たくさんの方にご利用頂いています。

とにかく早く問題解決したい人はこちら>>直接、データ解析相談
とにかく早く問題解決したい人はこちら>>直接、論文相談

関連記事1

R 使い方 | volcano plot 描き方(ボルケーノプロット)
R 使い方 ボックスプロット(box plot) グラフの描き方
R 使い方 折れ線グラフ グラフの描き方
R 使い方 パイチャート(円グラフ) グラフの描き方
R 使い方 棒グラフ グラフの描き方
R 使い方 散布図 グラフの描き方
R 使い方 ヒストグラム グラフの描き方

関連記事2

R plot 重ねる方法3パターン サンプルでわかるRの使い方
R 使い方 目盛りのべき乗回避 グラフの描き方
R 使い方 任意の軸ラベル グラフの描き方
R 使い方 グラフにテキストを書き込む グラフの描き方
R 使い方 ラベル向き調整 グラフの描き方
R 使い方 余白サイズ グラフの描き方
R 使い方 余白サイズ グラフの描き方
R 使い方 チャートやグラフの組合せ グラフの描き方
R 使い方 軸と目盛りの調整まとめ グラフの描き方
R 使い方 グラフの色 自作のカラーパレットとデフォルトのカラーパレット
R グラフ 凡例の調整 legendオプション
R 使い方 複数のグラフを並べる グラフの描き方
R 使い方 凡例・エラーバー・グラフ保存などの図の仕上げ グラフの描き方
R 使い方 軸・ラベルの調整(向き・サイズ・色など) グラフの描き方
R 使い方 散布図 工夫(透明度・グラフ並べるなど) グラフの描き方
R 使い方 グラフ重ねる・グラフ分割「上下・左右」 グラフの描き方
R 使い方 グラフ重ねる・グラフ分割「上下・左右」 グラフの描き方



カテゴリー

今週よく読まれている記事

  1. 学会・会議で英語が絶望的にできなくて困るケース | オンライン開催で「英語力のなさ」を痛感した場合の対処法

    学会・会議で英語ができなくてに困るケース学会やイベント・会議などが、オンラインで開催される…
  2. r tidyverse 使い方 | 列 filter 絞り込み select関数 – dplyrパッケージ

    tidyverseで1つのデータフレームの列の絞り込みは、dplyrパッケージのselect関数を…
  3. プログラミングで疲れた脳をリフレッシュ 〜 鬼滅の刃「感動」と「やる気アップ」でストレス発散!

    ストレス発散は鬼滅で。「50%OFF」で読む!脳のパフォーマンスを上げるには、適度な休憩と…
  4. AWS ディスク容量不足 新しいボリュームを追加する

    バイオインフォマティクスでは大きなファイルを扱うことがあるので、ディスク不足に陥ることがあります。…
  5. 「知っている」と「知らない」とでは、もしものとき、大違いになる – コロナうつ対策

    コロナうつなどという言葉を聞くようになりましたが、派遣切り、解雇、リストラは、これから本格化します…

人気記事

  1. IGV, 解析ツール

    IGV 使い方 インストール〜便利な使い方まで | リファレンス・マッピングデータ・アノテーションを読み込んで表示しよう
    IGV(Integrative Genomics View…
  2. R言語

    R subset関数 データフレームやmatrixからの条件指定による行・列の抽出
    R の subset関数は、データフレームやマトリックスか…
  3. Excel, 統計

    z-score 計算方法 エクセル(Excel) 編
    統計処理で、大きく変化しているなどの判断基準にも使われる値…

おすすめ記事

  1. シェルスクリプト

    シェルスクリプト | ファイル存在チェック・空ファイルチェック
    bashでスクリプトを作成するときに、よく使うのがファイル…
  2. awk, シェルスクリプト

    bash 部分文字列・置換・長さ・連結・分割の文字列処理
    bashのよく使う文字列処理、部分文字列・置換・連結・長さ…
  3. R言語, グラフ

    R 使い方 軸・ラベルの調整(向き・サイズ・色など) グラフの描き方
    Rによるplot(グラフ)の描画は、手軽で大変便利です。た…