Matplotlib で描くグラフの色を設定する方法
ここでは「Matplotlib で基本的なグラフを描く方法」で書いた単純なグラフの線の色を変更する方法を説明します。

Matplotlib のグラフの線の色を指定する方法
色の名前で文字列として色を指定する方法
線の色を指定するには、Axesオブジェクトのplot()関数を呼び出す際に、 color オプションで色を指定します。次の例では orange という色を指定しています。
import matplotlib.pyplot as plt
x = [0, 1, 2, 3, 4, 5]
y = [1, 2, 4, 3, 5, 10]
fig, ax = plt.subplots()
ax.plot(x, y, color='orange')
ax.grid()
ax.set(xlabel='x', ylabel='y', title='Hello!')
plt.show()
また、色のアルファ値 (透明度) を指定するには、タプルで次のようにします。
ax.plot(x, y, color=('orange', 0.5))
色の16進数カラーコードで指定する方法
colorオプションには CSS のように #FFFF00 のように16進数のカラーコードを直接指定することもできます。
RGB または RGBA のタプルで指定する方法
RGBの色を (r, g, b) (それぞれの値は 0 から 1 の範囲)、または RGBA の色を (r, g, b, a) で指定することもできます。
ax.plot(x, y, color=(0.5, 0.5, 0.0))
Matplotlib で使える標準の色の名前
上記ではオレンジ色を指定するために orange という文字列を、colorオプションに設定しました。
では、Matplotlib ではどのような色が使えるのでしょうか。ひとことで言うと、たくさんの色を名前で指定することができます。
Matplotlib ではmatplotlib.colors モジュール内に、以下のディクショナリが定義されており、それらのディクショナリのキーを色の名前として使うことができます。
- BASE_COLORS
- CSS4_COLORS
- TABLEAU_COLORS
- XKCD_COLORS
BASE_COLORS
BASE_COLORSでは以下の色が RGB で定義されています。
| 名前 | 値 | |
|---|---|---|
| b | (0, 0, 1) | |
| g | (0, 0.5, 0) | |
| r | (1, 0, 0) | |
| c | (0, 0.75, 0.75) | |
| m | (0.75, 0, 0.75) | |
| y | (0.75, 0.75, 0) | |
| k | (0, 0, 0) | |
| w | (1, 1, 1) |
CSS4_COLORS
| 名前 | 値 | |
|---|---|---|
| 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 |
TABLEAU_COLORS
TABLEAU_COLORSでは以下の色が16進数のカラーコードで定義されています。
| 名前 | 値 | |
|---|---|---|
| tab:blue | #1f77b4 | |
| tab:orange | #ff7f0e | |
| tab:green | #2ca02c | |
| tab:red | #d62728 | |
| tab:purple | #9467bd | |
| tab:brown | #8c564b | |
| tab:pink | #e377c2 | |
| tab:gray | #7f7f7f | |
| tab:olive | #bcbd22 | |
| tab:cyan | #17becf |
XKCD_COLORS
XKCD_COLORSでは非常にたくさんの色が定義されています。
https://xkcd.com/color/rgb にあるようにさまざまな色、たとえば「バナナ色」(#ffff7e)、「グレーっぽい色」(#a8a495) などがあり、それぞれ xkcd:banana、xkcd:greyish で利用できます。
色の名前とカラーコードは次のようにして列挙できます。
import matplotlib.colors as c
for _, (k, v) in enumerate(c.XKCD_COLORS.items()):
print(k, v)
以上、ここでは Matplotlib でグラフの色を変える方法、および、Matplotlib で使える色の名前などについて説明しました。