21
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Posted at

color cycleって?

スクリーンショット 2019-12-05 10.39.38.png

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

これをcolor cycleと呼びましょう1

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

何でこの色なの?

これもskotaroさんの記事に1よると、かつてのtableauのデフォルトカラーだそうです2

tableau10_palette.png

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

現在(?)のtableauの色に変更。

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

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

10色も使わなくね?

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

Beautiful Blues4

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

  • かなりgood!

Number34

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

  • 4色目が薄すぎて見えづらい?

Pastellea4

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

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

Android Lollipop4

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

  • これも差がわかりずらいか?

blue gray4

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

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

Gray Blue4

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

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

Purple Skyline4

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

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

Skin Tones4

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

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

Space Gray4

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

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

The Armor Falls4

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

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

Blue palette 5

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

  • 区別しやすい青を使いたいならこれでも良いかも
  1. https://qiita.com/skotaro/items/5c9893d186ccd31f459d 2 3

  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/ 2 3 4 5 6 7 8 9 10

  5. https://www.color-hex.com/color-palette/30415

21
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?