ggplot2
におけるデフォルトの配色は綺麗ですが、最初に使われるの2色が赤系と緑系になっており色覚異常がある場合には見分けにくい色の組み合わせになっています( 出典 )。このようなケースを考慮して色を変える場合に、様々なカラーパレットを定義しているRColorBrewer
パッケージを用いてみましょう。
Packages and Datasets
本ページではR version 3.4.4 (2018-03-15)の標準パッケージ以外に以下の追加パッケージを用いています。
Package | Version | Description |
---|---|---|
ggthemes | 4.0.1 | Extra Themes, Scales and Geoms for ‘ggplot2’ |
RColorBrewer | 1.1.2 | ColorBrewer Palettes |
tidyverse | 1.2.1 | Easily Install and Load the ‘Tidyverse’ |
また、本ページでは以下のデータセットを用いています。
Dataset | Package | Version | Description |
---|---|---|---|
mtcars | datasets | 3.4.4 | Motor Trend Car Road Tests |
パレット一覧
利用できるパレットはRColorBrewer::display.brewer.all
関数で確認することができます。左側の文字列がパレット名になります。
RColorBrewer::display.brewer.all()
パレットを変更する
線色や点色のパレットを変更する
グラフの線や色の指定はcolour
オプションですので、colour
オプションが利用するパレットを変えるにはggplot2::scale_colour_brewer
関数を用います。
mtcars %>%
ggplot2::ggplot(ggplot2::aes(x = hp, y = mpg, colour = as.factor(cyl))) +
ggplot2::geom_point(size = 2)
パレット一覧から利用したいパレットを選んでパレット名をpalette
オプションで指定します。
mtcars %>%
ggplot2::ggplot(ggplot2::aes(x = hp, y = mpg, colour = as.factor(cyl))) +
ggplot2::geom_point(size = 2) +
ggplot2::scale_colour_brewer(palette = "Accent")
塗りつぶし色のパレットを変更する
グラフの塗りつぶし色はfill
オプションになりますので、fill
オプションが利用するパレットを変えるにはggplot2::scale_fill_brewer
関数を用います。
mtcars %>%
ggplot2::ggplot(ggplot2::aes(x = as.factor(cyl), fill = as.factor(cyl))) +
ggplot2::geom_bar()
ggplot2::scale_colour_brewer
関数と同様にpallette
オプションにパレット名を指定します。下記の場合、ggplot2::scale_fill_brewer
関数のみを適用しているますので、線色の方はデフォルトのままになっていることが分かります。
mtcars %>%
ggplot2::ggplot(ggplot2::aes(x = as.factor(cyl), fill = as.factor(cyl),
colour = as.factor(cyl))) +
ggplot2::geom_bar() +
ggplot2::scale_fill_brewer(palette = "Accent")
カスタムパレットを使う
カラーパレットは自作することも可能です。
ggplot2
ggplot2
でカスタムパレットを作成するにはggplot2::scale_colour_manual
関数とggplot2::scale_fill_manual
関数を使います。
mtcars %>%
ggplot2::ggplot(ggplot2::aes(x = as.factor(cyl), fill = as.factor(cyl),
colour = as.factor(cyl))) +
ggplot2::geom_bar() +
ggplot2::scale_fill_manual(values = c("#FF0000", "#00FF00", "#0000FF"))
ggthemes
ggthemes
パッケージは150パターンにもおよぶカラーパレットやテーマを提供してくれるパッケージです。カラーパレットだけでなくggplot2
互換のscale_
関数群も提供しています。
name | V1 | V2 | V3 | V4 |
---|---|---|---|---|
Antique.and.clean | #b56357 | #b4dbc0 | #eae3ea | #a7b3a5 |
Antique.tones | #155765 | #57652a | #ab9353 | #4d2c3d |
Aqua.blues | #004d47 | #128277 | #52958b | #b9c4c9 |
Art.history.inspired | #ffce00 | #0375b4 | #007849 | #262228 |
Artic.sunrise | #ffccbb | #6eb5c0 | #006c84 | #e2e8e4 |
Autumn.in.vermont | #8d230f | #1e434c | #9b4f0f | #c99e10 |
Autumn.oranges.and.complemtentary.neutrals | #d55448 | #ffa577 | #f9f9ff | #896e69 |
Back.to.school | #81715e | #faae3d | #e38533 | #e4535e |
Berry.blues | #1e1f26 | #283655 | #4d648d | #d0e1f9 |
Beyond.black.and.white | #31a2ac | #af1c1c | #f0eff0 | #2f2f28 |
ggtheme
パッケージを用いるとExcelライクなグラフも簡単に描画できます。
mtcars %>%
ggplot2::ggplot(ggplot2::aes(x = as.factor(cyl), fill = as.factor(cyl))) +
ggplot2::geom_bar() +
ggthemes::theme_excel() +
ggthemes::scale_fill_excel() + ggthemes::scale_colour_excel()