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")

#&#36879;&#26126;&#24230;&#12434;&#19982;&#12360;&#12383;&#21336;&#33394;&#12459;&#12521;&#12540;&#12497;&#12524;&#12483;&#12488;&#12434;&#20316;&#25104;:alpha&#12467;&#12510;&#12531;&#12489;
#alpha(&#33394;, alpha = 0-1&#12398;&#21336;&#29420;&#25968;&#20516;&#12414;&#12383;&#12399;&#37197;&#21015;&#12395;&#12424;&#12426;&#25351;&#23450;)
show_col(alpha("#4b61ba", seq(0, 1, length = 12)))

出力例

・show_colコマンド

show_col

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

show_colDanIro

・alphaコマンド

show_colalpha

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

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

###&#12487;&#12540;&#12479;&#20363;&#12398;&#20316;&#25104;#####
TestData <- data.frame(Group = paste0("TEST", 1:10),
                       Data1 = sample(1:500, 10),
                       Data2 = sample(200:300, 10))
#####

#comma_format&#12467;&#12510;&#12531;&#12489;
#3&#26689;&#27598;&#12395;&#12459;&#12531;&#12510;&#12434;&#20184;&#19982;
comma(c(1, 1000, 2000, 1000000))
[1] "1" "1,000" "2,000" "1,000,000"

#&#25351;&#23450;&#12375;&#12383;&#31684;&#22258;&#12398;breaks&#12392;labels&#12434;&#20316;&#25104;:cbreaks&#12467;&#12510;&#12531;&#12489;
#pretty_breaks&#12458;&#12503;&#12471;&#12519;&#12531;:&#20998;&#21106;&#25968;&#12434;&#25351;&#23450;
#labels&#12458;&#12503;&#12471;&#12519;&#12531;:&#21021;&#26399;&#20516;scientific_format()
#labels&#12458;&#12503;&#12471;&#12519;&#12531;&#12395;&#35373;&#23450;&#12391;&#12365;&#12427;&#12467;&#12510;&#12531;&#12489;
#&#12459;&#12531;&#12510;&#34920;&#31034;;comma_format(digits = 3), &#26085;&#12395;&#12385;&#34920;&#31034;;date_format(format = "%Y-%m-%d", tz = "UTC"),
#&#12489;&#12523;&#34920;&#31034;;dollar_format(), &#34920;&#29694;&#24335;;percent_format(), unit&#34920;&#31034;;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%"

#&#12510;&#12491;&#12517;&#12450;&#12523;&#12391;&#12418;breaks&#12434;&#35373;&#23450;&#12391;&#12365;&#12414;&#12377;
cbreaks(c(0, 100), breaks = c(15, 30), labels = percent_format())
$breaks
[1] 15 30
$labels
[1] "1,500%" "3,000%"

#&#36899;&#32154;&#12473;&#12465;&#12540;&#12523;:cscale&#12467;&#12510;&#12531;&#12489;
#&#20351;&#12360;&#12381;&#12358;&#12394;2&#12388;&#12398;&#12497;&#12524;&#12483;&#12488;&#12434;&#32057;&#20171;&#12289;&#20182;&#12398;&#12497;&#12524;&#12483;&#12488;&#12399;HELP&#12434;&#21442;&#29031;
#mac&#12391;&#12398;&#25991;&#23383;&#21270;&#12369;&#38450;&#27490;
par(family = "HiraKakuProN-W3")
#area_pal&#12497;&#12524;&#12483;&#12488;
plot(TestData[, 2], TestData[, 2], xlab = "", ylab = "", main = "area_pal&#12497;&#12524;&#12483;&#12488;",
     cex = cscale(TestData[, 2], area_pal(range = c(1, 10))), col = "#4b61ba", pch = 16)
#seq_gradient_pal&#12497;&#12524;&#12483;&#12488;
plot(TestData[, 2], TestData[, 2], pch = 17, cex = 6, xlab = "", ylab = "", main = "seq_gradient_pal&#12497;&#12524;&#12483;&#12488;",
     col = cscale(TestData[, 2], seq_gradient_pal("#4b61ba", "#a87963")))

#&#38626;&#25955;&#12473;&#12465;&#12540;&#12523;:dscale&#12467;&#12510;&#12531;&#12489;
#&#20351;&#12360;&#12381;&#12358;&#12394;4&#12388;&#12398;&#12497;&#12524;&#12483;&#12488;&#12434;&#32057;&#20171;&#12289;&#20182;&#12398;&#12497;&#12524;&#12483;&#12488;&#12399;HELP&#12434;&#21442;&#29031;
#mac&#12391;&#12398;&#25991;&#23383;&#21270;&#12369;&#38450;&#27490;
par(family = "HiraKakuProN-W3")
#brewer_pal&#12497;&#12524;&#12483;&#12488;
plot(TestData[, 2], TestData[, 2], pch = 17, cex = 6, xlab = "", ylab = "",
     main = "brewer_pal&#12497;&#12524;&#12483;&#12488;", col = dscale(TestData[, 1], brewer_pal("div")))
#grey_pal&#12497;&#12524;&#12483;&#12488;
plot(TestData[, 2], TestData[, 2], pch = 17, cex = 6, xlab = "", ylab = "", main = "grey_pal&#12497;&#12524;&#12483;&#12488;",
     col = dscale(TestData[, 1], grey_pal(start = 0, end = 0.8)))
#hue_pal&#12497;&#12524;&#12483;&#12488;
#direction&#12458;&#12503;&#12471;&#12519;&#12531;:&#12459;&#12521;&#12540;&#12507;&#12452;&#12540;&#12523;&#12398;&#25351;&#23450;, 1 = clockwise, -1 = counter-clockwise
plot(TestData[, 2], TestData[, 2], pch = 17, cex = 6, xlab = "", ylab = "", main = "hue_pal&#12497;&#12524;&#12483;&#12488;",
     col = dscale(TestData[, 1], hue_pal(h = c(0, 160) + 15, c = 30, l = 75, h.start = 0, direction = 1)))
#shape_pal&#12497;&#12524;&#12483;&#12488;
#&#26368;&#22823;6&#12464;&#12523;&#12540;&#12503;&#12414;&#12391;&#33258;&#21205;&#12391;&#12471;&#12531;&#12508;&#12523;&#12434;&#35373;&#23450;&#12375;&#12414;&#12377;&#12290;6&#20197;&#19978;&#12399;&#12456;&#12521;&#12540;&#12395;&#12394;&#12426;&#12414;&#12377;
plot(TestData[, 2], TestData[, 2], pch = dscale(TestData[, 1], shape_pal(solid = TRUE)), cex = 6, xlab = "", ylab = "",
     main = "shape_pal&#12497;&#12524;&#12483;&#12488;", 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をコピーしました