カラーパレットの使い方～ジブリ風カラーパレットを例に～

# ジブリ風のカラーパレット

カラーパレットは、テーマごとなどでまとめられた色の集まりです。作図する場合に、カラーパレットを指定することで様々な図に色を付けることができます。

少し前ですが、ジブリ風のカラーパレットがあることを書きのXの投稿で知りました。使ってみたかったので、こちらのカラーパレットを例にカラーパレットの使い方を紹介します。

https://twitter.com/matsuura_rits/status/1750787779901145261/photo/1

## 実際に使ってみる
カラーパレットの詳細はこのカラーパレットの作者のウェブサイトにあります（https://ewenme.github.io/ghibli/ ）。URLを開くと、使用できるカラーパレットの一覧があります。色の指定の方法ですが、```scale_colour_ghibli_d```関数の```direction```という引数で指定できます。

```R
library(ghibli)
library(ggplot2)
ggplot(iris, aes(Sepal.Length, Sepal.Width, color = Species)) +
  geom_jitter(size = 3) +
  theme_minimal() +
  scale_colour_ghibli_d("KikiLight", #ここでジブリ風パレットを指定
                        direction = 1)
```

以下の魔女の宅急便モチーフを例に挙げると、今回は```diretction```に "1"を指定しているので、一番左の黒色から採用されます。今回```color```で指定している**Species**は3水準のデータなので、一番左の黒色から順に3番目までの色が採用されています。色の割り当ては水準の順番に対応しているので、色の割り当てを変えたい場合は、パレットに合わせて水準の順番を変更する必要があります。```levels```関数で調べることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2344524/b7950305-7dd1-cbaf-01a3-ebaf54b28c81.png)

```R
levels(iris$Species)
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2344524/5a3a4105-7146-4c84-40fd-25274f40ef06.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2344524/b9ad9680-5252-a059-e87a-3ae4915f5c75.png)

順番を変える場合は、```factor```関数で変更できます。

```R
iris$Species <- factor(iris$Species, 
                    levels = c("virginica", "versicolor", "setosa"))
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2344524/c0e27ed9-7e53-6857-a2bc-6b360fc93cf5.png)

```direction```に-1を入れると、パレットの右側から順に色が割り当てられます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2344524/f9c9d7aa-6b81-322d-c474-b280c73eb08a.png)

## 好きな色を手動で指定する
任意の色を指定したい場合は、色のコードを手動で入力します。カラーパレットのそれぞれの色がどんなコードなのかは、```ghibli_palettes$使いたいものの名前```で調べられます。上の例では**KikiLight**を使っていたので、そちらから選びたいと思います。以下のコードを実行すると、画像のような出力が返ってきます。

```R
ghibli_palettes$KikiLight
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2344524/b83a2ebd-f0e8-da32-63ab-fcb3a2a09de7.png)

それでは、左から3番目、5番目、6番目の3色を指定します。
手動で指定する場合は、```scale_colour_manual```関数を使います。

```R
# ジブリ風カラーパレットを定義
ghibli_colors <- c("#D98594FF", "#D0C1AAFF", "#C0DDE1FF")

ggplot(iris, aes(Sepal.Length, Sepal.Width, color = Species)) +
  geom_jitter(size = 3) +
  theme_minimal() +
  scale_colour_manual(values = ghibli_colors) #ここが前と違う！
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2344524/66ef1c25-aec9-3e8f-f64e-6562873807de.png)

# おまけ：手書き風の作図
上で引用していたXの投稿では、手書きのようなグラフになっています。こちらを再現しましょう。どうやら```ggrough```関数を使うみたいですね。関数の詳細はこちらのページにあります（ https://xvrdm.github.io/ggrough/ ）。

https://twitter.com/matsuura_rits/status/1750787779901145261/photo/1

```R
#パッケージのインストール
devtools::install_github("xvrdm/ggrough")
library(ggrough)
```
適当なデータを作り、棒グラフを作成します。**ここで注意点として、作成した図は、必ず変数に格納してください。**

```R
# mtcars データセットから車種ごとの平均マイル数 (mpg) を計算
avg_mpg <- aggregate(mpg ~ cyl, data = mtcars, FUN = mean)

# 棒グラフを作成
p <- ggplot(avg_mpg, aes(x = factor(cyl), y = mpg, fill = factor(cyl))) +
  geom_col() +
  labs(title = "Average MPG by Number of Cylinders",
       x = "Number of Cylinders",
       y = "Average MPG") +
  theme_minimal() +
  scale_fill_manual(values = ghibli_colors)
```

手書きのオプションを指定します。リストの中の、**fill_style**でスタイルを指定します。手書き風は**zigzag**です。
```R
options <- list(
  Background=list(roughness=8),
  GeomCol=list(fill_style="zigzag", angle_noise=0.5, fill_weight=2))
```
以下の```get_rough_chart```関数で出力します。先ほど作成した図を格納した変数**p**と作図のオプションを格納した**option**を指定します。
```R
get_rough_chart(p, options)
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2344524/b4063736-289b-87e5-6cfa-3a46be16cb03.png)

ちなみに、**fill_style**には、**solid**、**hachure**、**cross-hatch**、**dots**もあります。ためしに**cross-hatch**を指定すると、以下の図が出力されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2344524/dd387ec6-387b-a7ad-b546-77f646fe4ece.png)


# 最後に
今回はジブリ風のカラーパレットを紹介しましたが、Rには沢山の種類のカラーパレットがあります。例えば、色覚バリアフリーのカラーパレットもあるようです（https://www.karada-good.net/analyticsr/r-674/ ）。また、カラーパレットを自作することもできるみたいです。

https://qiita.com/kazutan/items/c8b414cd847231f5b049

# 引用資料

- [ghibli：https://ewenme.github.io/ghibli/](https://ewenme.github.io/ghibli/)
- [ggrough：https://xvrdm.github.io/ggrough/](https://xvrdm.github.io/ggrough/)
- [Rで解析：色覚バリアフリーな全35種類「scico」パッケージ：https://www.karada-good.net/analyticsr/r-674/](https://www.karada-good.net/analyticsr/r-674/)
- [Rでカラーパレット作成：https://qiita.com/kazutan/items/c8b414cd847231f5b049](https://qiita.com/kazutan/items/c8b414cd847231f5b049)