niszetの日記

細かい情報を載せていくブログ

(R) ggplot2のデフォルトの設定を探していく。まずは色から。

デフォルトの設定を探すのは思った以上に大変ですよコレ

元ネタはこちら。

qiita.com

この色、どこで設定されているんでしょう?って気になったので、調べてみると、

asNamespace("ggplot2")[["scale_color_continuous"]]

の中身が

function (..., low = "#132B43", high = "#56B1F7", space = "Lab", 
    na.value = "grey50", guide = "colourbar") 
{
    continuous_scale("colour", "gradient", seq_gradient_pal(low, 
        high, space), na.value = na.value, guide = guide, ...)
}
<environment: namespace:ggplot2>

となっており、連続値のときの色が引数のデフォルト値に入っていますね。

この関数の実体はseq_gradient_pal()なので、実際に、下記のように与えると、

scales:::seq_gradient_pal(low = "#132B43", high = "#56B1F7", space = "Lab")(seq(0,1,1/24))

#>  [1] "#132B43" "#15304A" "#183550" "#1B3A57" "#1D3F5E" "#204465" "#22496C" "#254F73" "#28547A" "#2A5A82" "#2D5F89"
#> [12] "#306590" "#336A98" "#3670A0" "#3875A7" "#3B7BAF" "#3E81B7" "#4187BF" "#448DC6" "#4793CE" "#4A99D6" "#4D9FDE"
#> [23] "#50A5E7" "#53ABEF" "#56B1F7"

のように得られて、上記のページのカラーコードと一致することが確認できました。

同様に、discreteの方は

asNamespace("ggplot2")[["scale_color_discrete"]]

function (..., h = c(0, 360) + 15, c = 100, l = 65, h.start = 0, 
    direction = 1, na.value = "grey50") 
{
    discrete_scale("colour", "hue", hue_pal(h, c, l, h.start, 
        direction), na.value = na.value, ...)
}
<environment: namespace:ggplot2>

から、

scales::hue_pal(c(0, 360)+15, 100, 65, 0, 1)(4)
#> [1] "#F8766D" "#7CAE00" "#00BFC4" "#C77CFF"

となって、例とカラーコードが一致しますね。

ヒストグラムの灰色はgrey35かなぁ。このgrey35って値自体が使われていることは確認できたけど…デフォルトの挙動はまだ謎が多い…。

github.com

最近ようやくggplot2パッケージの中が追えるようになってきたのですが、果たして私が進むべき道はこっちなのだろうか…違う気はしている…。

まぁとりあえずわかったことは以上です。

Enjoy!!