Rで解析:カラーパレット作成や連続・離散スケールの操作が簡単「scales」パッケージ

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

カラーパレットの作成だけでなく、文字列の表示形式や連続・離散スケールの管理が簡単な「scalesパッケージ」を紹介します。連続・離散スケールの管理コマンドを使うと、plotコマンドだけではなくggplot2パッケージでも軸やスケールの調整が楽になると思います。

Rの操作に慣れていない方へオススメしたいパッケージです。

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

スポンサーリンク

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

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

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

パッケージの読み込み

下記を実行してパッケージを読み込んでください。

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

カラーパレット作成のコマンド紹介

詳細はコマンド内のコメントを確認してください。

#カラーパレットの作成:show_colコマンド
#show_col(色, labels = カラーコードの表示:TRUE/FALSE, borders = 枠線の色を指定:枠無しはNA)
show_col("#4b61ba", labels = TRUE, borders = "#a87963")

#seq_gradient_palコマンドとの組み合わせ
#参考記事:Rでお遊び:プレゼン資料の配色に使えるかも?キャラクターの髪の色?
#https://www.karada-good.net/analyticsr/r-83/
#ダンまち,花咲くいろはパレット
x <- seq(0, 1, length = 600)
show_col(seq_gradient_pal(c("#e1e6ea", "#505457", "#4b61ba", "#a87963",
                            "#d9bb9c", "#756c6d", "#807765", "#ad8a80"))(x),
         labels = FALSE, borders = "#a87963")

#透明度を与えた単色カラーパレットを作成:alphaコマンド
#alpha(色, alpha = 0-1の単独数値または配列により指定)
show_col(alpha("#4b61ba", seq(0, 1, length = 12)))

出力例

・show_colコマンド

show_col

・seq_gradient_palコマンドとの組み合わせ(ダンまち&花咲くいろはパレット)

show_colDanIro

・alphaコマンド

show_colalpha

文字列の表示形式と連続・離散スケールのコマンド紹介

詳細はコマンド内のコメントを確認してください。

###データ例の作成#####
TestData <- data.frame(Group = paste0("TEST", 1:10),
                       Data1 = sample(1:500, 10),
                       Data2 = sample(200:300, 10))
#####

#comma_formatコマンド
#3桁毎にカンマを付与
comma(c(1, 1000, 2000, 1000000))
[1] "1" "1,000" "2,000" "1,000,000"

#指定した範囲のbreaksとlabelsを作成:cbreaksコマンド
#pretty_breaksオプション:分割数を指定
#labelsオプション:初期値scientific_format()
#labelsオプションに設定できるコマンド
#カンマ表示;comma_format(digits = 3), 日にち表示;date_format(format = "%Y-%m-%d", tz = "UTC"),
#ドル表示;dollar_format(), 表現式;percent_format(), unit表示;unit_format()
cbreaks(c(0, 100), pretty_breaks(10), labels = percent_format())
$breaks
[1]   0  10  20  30  40  50  60  70  80  90 100
$labels
[1] "0%" "1,000%" "2,000%" "3,000%" "4,000%" "5,000%" "6,000%" "7,000%" "8,000%" "9,000%" "10,000%"

#マニュアルでもbreaksを設定できます
cbreaks(c(0, 100), breaks = c(15, 30), labels = percent_format())
$breaks
[1] 15 30
$labels
[1] "1,500%" "3,000%"

#連続スケール:cscaleコマンド
#使えそうな2つのパレットを紹介、他のパレットはHELPを参照
#macでの文字化け防止
par(family = "HiraKakuProN-W3")
#area_palパレット
plot(TestData[, 2], TestData[, 2], xlab = "", ylab = "", main = "area_palパレット",
     cex = cscale(TestData[, 2], area_pal(range = c(1, 10))), col = "#4b61ba", pch = 16)
#seq_gradient_palパレット
plot(TestData[, 2], TestData[, 2], pch = 17, cex = 6, xlab = "", ylab = "", main = "seq_gradient_palパレット",
     col = cscale(TestData[, 2], seq_gradient_pal("#4b61ba", "#a87963")))

#離散スケール:dscaleコマンド
#使えそうな4つのパレットを紹介、他のパレットはHELPを参照
#macでの文字化け防止
par(family = "HiraKakuProN-W3")
#brewer_palパレット
plot(TestData[, 2], TestData[, 2], pch = 17, cex = 6, xlab = "", ylab = "",
     main = "brewer_palパレット", col = dscale(TestData[, 1], brewer_pal("div")))
#grey_palパレット
plot(TestData[, 2], TestData[, 2], pch = 17, cex = 6, xlab = "", ylab = "", main = "grey_palパレット",
     col = dscale(TestData[, 1], grey_pal(start = 0, end = 0.8)))
#hue_palパレット
#directionオプション:カラーホイールの指定, 1 = clockwise, -1 = counter-clockwise
plot(TestData[, 2], TestData[, 2], pch = 17, cex = 6, xlab = "", ylab = "", main = "hue_palパレット",
     col = dscale(TestData[, 1], hue_pal(h = c(0, 160) + 15, c = 30, l = 75, h.start = 0, direction = 1)))
#shape_palパレット
#最大6グループまで自動でシンボルを設定します。6以上はエラーになります
plot(TestData[, 2], TestData[, 2], pch = dscale(TestData[, 1], shape_pal(solid = TRUE)), cex = 6, xlab = "", ylab = "",
     main = "shape_palパレット", col = dscale(TestData[, 1], hue_pal(h = c(0, 160) + 15, c = 30, l = 75, h.start = 0, direction = 1)))

出力例

<連続スケール:cscaleコマンド>
・area_palパレット

area_pal

・seq_gradient_palパレット

seq_gradient_pal

<離散スケール:dscaleコマンド>
・brewer_palパレット

dscalebrewer_pal

・grey_palパレット

grey_pal

・hue_palパレット

hue_pal

・shape_palパレット

shape_pal

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

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