matplotlibで指定可能な色の名前と一覧をまとめてみた

Pythonのデータ可視化ライブラリである、matplotlibでグラフの線や棒の色に指定可能な色の名前 (カラーコード) とその指定方法について紹介していきます。matplotlibを使っていると色のバリエーションにいちいち悩みますが、この記事を見れば理想の色とその指定方法が見つかります!

今回は公式のドキュメントを参考に進めていきます。

参考 color example code: named_colors.pyMatplotlib 1.5.1 documentation

指定可能な色を総まとめ

結局指定できる色はどれなの?と気になる方も多いと思います。ズバリ、以下に乗っているカラーが主に指定できるものになります。こちらは公式が発表している画像で、前項の参考URLよりご覧いただけます。


指定できる色を調べる方法

上記の画像を保存しておけばチートシートとしていつでも確認できますが、実はコードでmatplotlibにアクセスすることで、色の名前と対応するカラーコードを調べることもできます。その方法をご紹介します。こちらは非常に長いdict形式で返ってくるので、見たい方はコードの下にある開きボタンを押してください。

Python
# これに対する応答は下記ボタンにて見れます
import matplotlib
matplotlib.colors.cnames
{'aliceblue': '#F0F8FF',
 'antiquewhite': '#FAEBD7',
 'aqua': '#00FFFF',
 'aquamarine': '#7FFFD4',
 'azure': '#F0FFFF',
 'beige': '#F5F5DC',
 'bisque': '#FFE4C4',
 'black': '#000000',
 'blanchedalmond': '#FFEBCD',
 'blue': '#0000FF',
 'blueviolet': '#8A2BE2',
 'brown': '#A52A2A',
 'burlywood': '#DEB887',
 'cadetblue': '#5F9EA0',
 'chartreuse': '#7FFF00',
 'chocolate': '#D2691E',
 'coral': '#FF7F50',
 'cornflowerblue': '#6495ED',
 'cornsilk': '#FFF8DC',
 'crimson': '#DC143C',
 'cyan': '#00FFFF',
 'darkblue': '#00008B',
 'darkcyan': '#008B8B',
 'darkgoldenrod': '#B8860B',
 'darkgray': '#A9A9A9',
 'darkgreen': '#006400',
 'darkgrey': '#A9A9A9',
 'darkkhaki': '#BDB76B',
 'darkmagenta': '#8B008B',
 'darkolivegreen': '#556B2F',
 'darkorange': '#FF8C00',
 'darkorchid': '#9932CC',
 'darkred': '#8B0000',
 'darksalmon': '#E9967A',
 'darkseagreen': '#8FBC8F',
 'darkslateblue': '#483D8B',
 'darkslategray': '#2F4F4F',
 'darkslategrey': '#2F4F4F',
 'darkturquoise': '#00CED1',
 'darkviolet': '#9400D3',
 'deeppink': '#FF1493',
 'deepskyblue': '#00BFFF',
 'dimgray': '#696969',
 'dimgrey': '#696969',
 'dodgerblue': '#1E90FF',
 'firebrick': '#B22222',
 'floralwhite': '#FFFAF0',
 'forestgreen': '#228B22',
 'fuchsia': '#FF00FF',
 'gainsboro': '#DCDCDC',
 'ghostwhite': '#F8F8FF',
 'gold': '#FFD700',
 'goldenrod': '#DAA520',
 'gray': '#808080',
 'green': '#008000',
 'greenyellow': '#ADFF2F',
 'grey': '#808080',
 'honeydew': '#F0FFF0',
 'hotpink': '#FF69B4',
 'indianred': '#CD5C5C',
 'indigo': '#4B0082',
 'ivory': '#FFFFF0',
 'khaki': '#F0E68C',
 'lavender': '#E6E6FA',
 'lavenderblush': '#FFF0F5',
 'lawngreen': '#7CFC00',
 'lemonchiffon': '#FFFACD',
 'lightblue': '#ADD8E6',
 'lightcoral': '#F08080',
 'lightcyan': '#E0FFFF',
 'lightgoldenrodyellow': '#FAFAD2',
 'lightgray': '#D3D3D3',
 'lightgreen': '#90EE90',
 'lightgrey': '#D3D3D3',
 'lightpink': '#FFB6C1',
 'lightsalmon': '#FFA07A',
 'lightseagreen': '#20B2AA',
 'lightskyblue': '#87CEFA',
 'lightslategray': '#778899',
 'lightslategrey': '#778899',
 'lightsteelblue': '#B0C4DE',
 'lightyellow': '#FFFFE0',
 'lime': '#00FF00',
 'limegreen': '#32CD32',
 'linen': '#FAF0E6',
 'magenta': '#FF00FF',
 'maroon': '#800000',
 'mediumaquamarine': '#66CDAA',
 'mediumblue': '#0000CD',
 'mediumorchid': '#BA55D3',
 'mediumpurple': '#9370DB',
 'mediumseagreen': '#3CB371',
 'mediumslateblue': '#7B68EE',
 'mediumspringgreen': '#00FA9A',
 'mediumturquoise': '#48D1CC',
 'mediumvioletred': '#C71585',
 'midnightblue': '#191970',
 'mintcream': '#F5FFFA',
 'mistyrose': '#FFE4E1',
 'moccasin': '#FFE4B5',
 'navajowhite': '#FFDEAD',
 'navy': '#000080',
 'oldlace': '#FDF5E6',
 'olive': '#808000',
 'olivedrab': '#6B8E23',
 'orange': '#FFA500',
 'orangered': '#FF4500',
 'orchid': '#DA70D6',
 'palegoldenrod': '#EEE8AA',
 'palegreen': '#98FB98',
 'paleturquoise': '#AFEEEE',
 'palevioletred': '#DB7093',
 'papayawhip': '#FFEFD5',
 'peachpuff': '#FFDAB9',
 'peru': '#CD853F',
 'pink': '#FFC0CB',
 'plum': '#DDA0DD',
 'powderblue': '#B0E0E6',
 'purple': '#800080',
 'rebeccapurple': '#663399',
 'red': '#FF0000',
 'rosybrown': '#BC8F8F',
 'royalblue': '#4169E1',
 'saddlebrown': '#8B4513',
 'salmon': '#FA8072',
 'sandybrown': '#F4A460',
 'seagreen': '#2E8B57',
 'seashell': '#FFF5EE',
 'sienna': '#A0522D',
 'silver': '#C0C0C0',
 'skyblue': '#87CEEB',
 'slateblue': '#6A5ACD',
 'slategray': '#708090',
 'slategrey': '#708090',
 'snow': '#FFFAFA',
 'springgreen': '#00FF7F',
 'steelblue': '#4682B4',
 'tan': '#D2B48C',
 'teal': '#008080',
 'thistle': '#D8BFD8',
 'tomato': '#FF6347',
 'turquoise': '#40E0D0',
 'violet': '#EE82EE',
 'wheat': '#F5DEB3',
 'white': '#FFFFFF',
 'whitesmoke': '#F5F5F5',
 'yellow': '#FFFF00',
 'yellowgreen': '#9ACD32'}

たった1文字で色指定する方法

主要な色は1文字で指定することができます。光の三原色(RGB)と色の三原色(CMY)に黒と白(KW)を合わせた全部で8色になります。

Python
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np

colorlist = ["r", "g", "b", "c", "m", "y", "k", "w"]
x = np.arange(1, 9)
height = np.repeat(1, 8)
plt.bar(x, height, color=colorlist, tick_label=colorlist, align="center")

b
g
r
c シアン
m マゼンダ
y
k
w

16進数のカラーコードで指定する方法

HTMLやCSSでよく使用される16進数で指定することもできます。#ff0000(赤)や#000000 (黒)では、細かな調整もできるので、報告資料に合わせて厳密な色を指定したい方などにおすすめです。

Python
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
 
fig = plt.figure()
fig.patch.set_facecolor('white')
 
colorlist = ['#fff8ff', '#fcf9ce', '#d6fada', '#d7ffff', '#d9f2f8', '#fac8be', '#ffebff', '#f8ecd5']
x = np.arange(1, 9)
height = np.arange(1, 9)
plt.barh(x, height, color=colorlist, tick_label=colorlist, align="center")


RGBで指定する方法

バックエンドエンジニアはもしかしたらRGB値の方が慣れているかもしれません。画像解析でもRGBを目にする機会が多いですね。もちろん指定することができます。

Python
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
fig.patch.set_facecolor('white')
col1 = [0.0, 0.0, 0.0]
col2 = [1.0, 0.0, 0.0]
col3 = [0.0, 1.0, 0.0]
col4 = [0.0, 0.0, 1.0]
colorlist = [col1, col2, col3, col4]
x = np.arange(1, 5)
height = np.arange(1, 5)
plt.bar(x, height, color=colorlist, tick_label=colorlist, align="center")


グレースケールで指定する方法

白黒の間隔の濃淡で出力することもできます。

Python
%matplotlib inline
import matplotlib.pyplot as plt

x = [10, 10, 10, 10, 10, 10, 10, 10, 10, 10]
colorlist = ["0.1", "0.2", "0.3", "0.4", "0.5", "0.6", "0.7", "0.8", "0.9", "1.0"]
plt.pie(x, labels=colorlist, counterclock=False, startangle=90, colors=colorlist)


まとめ

さて、ここまでmatplotlibで使えるカラー指定とその方法について紹介してきました。

公式から指定表が出てるのはこころ強いですし、様々な方法で指定もできるので、こだわりたい方は16進数で調整してみたり、デザインを意識した可視化ができればと思います。