matplotlibのcolor cycleをいい感じにしてみる

# color cycleって？
![スクリーンショット 2019-12-05 10.39.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/196857/828b566b-415c-cd5d-fe52-010df53963b1.png)


こんな感じで、デフォルトで一つの図に複数プロットすると、色が「青→橙→緑→赤…」というふうに変化していきます。
プロット数が10を超えると一周してまた青に戻ります。

これをcolor cycleと呼びましょう[^1]。

だいたいはskotaroさんの記事[^1]を参考にしています。凄い。


# 何でこの色なの？
これもskotaroさんの記事に[^1]よると、かつてのtableauのデフォルトカラーだそうです[^2]。

![tableau10_palette.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/196857/ed6f8b7e-97c3-c7c7-d063-57f3136a832c.png)

この図を見ればわかるように、かつての色ではかなりvividな色になっていてあまり目に優しくないですね。
ですので、まず新しいtableauの色にしてみましょう。

# 現在（？）のtableauの色に変更。

```python
from matplotlib import pyplot as plt
from cycler import cycler

plt.rcParams['axes.prop_cycle']  = cycler(color=['#4E79A7', '#F28E2B', '#E15759', '#76B7B2','#59A14E',
                                                 '#EDC949','#B07AA2','#FF9DA7','#9C755F','#BAB0AC'])

x_list = [[i for i in range(11)] for _ in range(11)]
y_list = [[i for _ in range(11)] for i in range(11)]

for x,y in zip(x_list,y_list):
    plt.plot(x,y,linewidth=10.)
```

![スクリーンショット 2019-12-05 10.42.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/196857/ec6014c1-ebd6-01a4-7737-712f8990db96.png)

色の抽出はすごく便利なサイト[^3]を使って行いました。
目に優しい色になりましたね！！


# 10色も使わなくね？
10色も使うことはかなり視認性が悪くなります。
そこで同系統の色を使うような設定も考えてみましょう。

## Beautiful Blues[^4]


```python
blue_cycle = cycler(color=['#011f4b','#03396c','#005b96','#6497b1','#b3cde0'])
plt.rcParams['axes.prop_cycle']  = blue_cycle

for x,y in zip(x_list[:5],y_list[:5]):
    plt.plot(x,y,linewidth=30.)
```
![スクリーンショット 2019-12-05 10.57.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/196857/2fbcfd73-1246-439d-dd76-e4a93de19a61.png)

* かなりgood！

## Number3[^4]

```python
number3_cycle = cycler(color=['#2a4d69','#4b86b4','#adcbe3','#e7eff6','#63ace5'])
plt.rcParams['axes.prop_cycle']  = number3_cycle

for x,y in zip(x_list[:5],y_list[:5]):
    plt.plot(x,y,linewidth=30.)
```

![スクリーンショット 2019-12-05 11.00.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/196857/7e1cccc0-68e1-81d1-f3b0-579340c9ee5f.png)

* 4色目が薄すぎて見えづらい？

## Pastellea[^4]

```python
pastellea_cycle = cycler(color=['#fe9c8f','#feb2a8','#fec8c1','#fad9c1','#f9caa7'])
plt.rcParams['axes.prop_cycle']  = pastellea_cycle
for x,y in zip(x_list[:5],y_list[:5]):
    plt.plot(x,y,linewidth=30.)
```
![スクリーンショット 2019-12-05 11.04.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/196857/258f2386-af6d-21d9-b51f-2901e674a843.png)

* 少し差がわかりずらいか

## Android Lollipop[^4]
```python
android_lollipop_cycle = cycler(color=['#009688','#35a79c','#54b2a9','#65c3ba','#83d0c9'])
plt.rcParams['axes.prop_cycle']  = android_lollipop_cycle
for x,y in zip(x_list[:5],y_list[:5]):
    plt.plot(x,y,linewidth=30.)
```
![スクリーンショット 2019-12-05 11.07.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/196857/1497c918-fdbb-8887-0bf8-cdb27193818c.png)


* これも差がわかりずらいか？

## blue gray[^4]
```python
blue_grey_cycle = cycler(color=['#6e7f80','#536872','#708090','#536878','#36454f'])
plt.rcParams['axes.prop_cycle']  = blue_grey_cycle
for x,y in zip(x_list[:5],y_list[:5]):
    plt.plot(x,y,linewidth=30.)
```
![スクリーンショット 2019-12-05 11.11.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/196857/0229db6f-dcb0-09d1-3f47-5daacdf70b32.png)

* not badっていう感じですかね。使い所はありそうです。

## Gray Blue[^4]

```python
gray_blue_cycle = cycler(color=['#3385c6','#4279a3','#476c8a','#49657b','#7f8e9e'])
plt.rcParams['axes.prop_cycle']  = gray_blue_cycle
for x,y in zip(x_list[:5],y_list[:5]):
    plt.plot(x,y,linewidth=30.)
```

![スクリーンショット 2019-12-05 11.16.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/196857/2d096d06-69ba-3fd0-d807-bf7c49616605.png)

* Beautiful blueほどvividではなく、区別もしやすい

## Purple Skyline[^4]
```python
purple_cycle = cycler(color=['#2e003e','#3d2352','#3d1e6d','#8874a3','#e4dcf1'])
plt.rcParams['axes.prop_cycle']  = purple_cycle
for x,y in zip(x_list[:5],y_list[:5]):
    plt.plot(x,y,linewidth=30.)
```
![スクリーンショット 2019-12-05 11.19.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/196857/b43d727b-2179-8682-43a1-6031e26ec271.png)

* ややvividだが区別しやすい

## Skin Tones[^4]
```python
skin_cycle = cycler(color=['#8d5524','#c68642','#e0ac69','#f1c27d','#ffdbac'])
plt.rcParams['axes.prop_cycle']  = skin_cycle
for x,y in zip(x_list[:5],y_list[:5]):
    plt.plot(x,y,linewidth=30.)
```

![スクリーンショット 2019-12-05 11.22.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/196857/c4890318-ceb4-95f2-6a4f-fa215586d3ef.png)

* いい感じだが、この色を使うかどうかは完全に好み

## Space Gray[^4]
```python
space_gray_cycle = cycler(color=['#343d46','#4f5b66','#65737e','#a7adba','#c0c5ce'])
plt.rcParams['axes.prop_cycle']  = space_gray_cycle
for x,y in zip(x_list[:5],y_list[:5]):
    plt.plot(x,y,linewidth=30.)
```

![スクリーンショット 2019-12-05 11.24.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/196857/74fe4df7-a309-f3bb-282b-b9048008ddde.png)

* 黒系にしたいときはいい感じですね

## The Armor Falls[^4]
```python
armor_falls_cycle = cycler(color=['#bfd6f6','#8dbdff','#64a1f4','#4a91f2','#3b7dd8'])
plt.rcParams['axes.prop_cycle']  = armor_falls_cycle
for x,y in zip(x_list[:5],y_list[:5]):
    plt.plot(x,y,linewidth=30.)
```
![スクリーンショット 2019-12-05 11.26.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/196857/fd628fca-bc48-bc2e-ec8c-ce4d9902b8bb.png)

* これも使い勝手良さそうですね

## Blue palette [^5]
```python
blue_cycle2 = cycler(color=['#005073','#107dac','#189ad3','#1ebbd7','#71c7ec'])
plt.rcParams['axes.prop_cycle']  = blue_cycle2
for x,y in zip(x_list[:5],y_list[:5]):
    plt.plot(x,y,linewidth=30.)
```
![スクリーンショット 2019-12-05 11.31.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/196857/7abe6bc1-29cd-c437-6a21-50f0c9023994.png)

* 区別しやすい青を使いたいならこれでも良いかも






[^1]: https://qiita.com/skotaro/items/5c9893d186ccd31f459d
[^2]: https://www.tableau.com/about/blog/2016/7/colors-upgrade-tableau-10-56782
[^3]: https://www.peko-step.com/tool/getcolor.html
[^4]: https://digitalsynopsis.com/design/beautiful-color-palettes-combinations-schemes/
[^5]: https://www.color-hex.com/color-palette/30415