{
"cells": [
{
"cell_type": "markdown",
"id": "f4537328-8811-49f5-9a2d-5e7709304fbd",
"metadata": {},
"source": [
"# Matplotlib 色の書式\n",
"\n",
"公開日 \n",
"\n",
"この記事では、Matplotlibの色の書式を設定する方法を解説します。\n",
"\n",
"色の主な書式を以下の表に示します。\n",
"\n",
"|引数|説明|\n",
"|---|---|\n",
"|color|枠線と塗り潰しの色|\n",
"|edgecolor|枠線の色|\n",
"|facecolor|塗り潰しの色|\n",
"|alpha|色の透明度|\n",
"\n",
"また、主な色の指定方法を以下の表に示します。\n",
"\n",
"|方法|説明|例|\n",
"|---|---|---|\n",
"|1文字|1文字で指定|`\"b\"`, `\"g\"`|\n",
"|CSSカラーネーム|HTML/CSSで指定できる色の名前|`\"blue\"`, `\"green\"`|\n",
"|tab10カラー|カラーパレット|`\"tab:blue\"`, `\"tab:orange\"`|\n",
"|Cnカラー|カラーサイクル|`\"C0\"`, `\"C1\"`|\n",
"|RGB|赤・緑・青をタプルで与える|`(0.5, 0, 1)`|\n",
"|RGBA|赤・緑・青・透明度をタプルで与える|`(0.5, 0, 1, 0.8)`|\n",
"|16進数|赤・緑・青を16進数で与える|`\"#0F0F0F\"`|"
]
},
{
"cell_type": "markdown",
"id": "51f190d0-c571-4a44-878c-4b0645c752f9",
"metadata": {},
"source": [
"## 1文字の色指定\n",
"\n",
"1文字で指定できる色には、`{'b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'}`の8色があります。それぞれ青、緑、赤、シアン、マゼンタ、黄色、黒、白となります。\n",
"\n",
"% "
]
},
{
"cell_type": "markdown",
"id": "8146e8b9-0cd1-4136-8cba-0883c9a0b380",
"metadata": {},
"source": [
"
Color | Name | Color | Name | Color | Name | Color | Name |
---|
| b | | r | | m | | k |
| g | | c | | y | | w |
"
]
},
{
"cell_type": "markdown",
"id": "19151fd6-63a2-4ceb-8d02-4f26490a96f7",
"metadata": {
"tags": []
},
"source": [
"## CSSカラーネーム\n",
"\n",
"MatplotlibではHTML/CSSのカラーネームと同じ148色を指定できます。色とその名前は以下になります。\n",
"\n",
"% "
]
},
{
"cell_type": "markdown",
"id": "24c680ae-2672-4d1d-b692-310fe9c262c5",
"metadata": {},
"source": [
"color | name | Color | Name | color | name | color | name |
---|
| black | | bisque | | forestgreen | | slategrey |
| dimgray | | darkorange | | limegreen | | lightsteelblue |
| dimgrey | | burlywood | | darkgreen | | cornflowerblue |
| gray | | antiquewhite | | green | | royalblue |
| grey | | tan | | lime | | ghostwhite |
| darkgray | | navajowhite | | seagreen | | lavender |
| darkgrey | | blanchedalmond | | mediumseagreen | | midnightblue |
| silver | | papayawhip | | springgreen | | navy |
| lightgray | | moccasin | | mintcream | | darkblue |
| lightgrey | | orange | | mediumspringgreen | | mediumblue |
| gainsboro | | wheat | | mediumaquamarine | | blue |
| whitesmoke | | oldlace | | aquamarine | | slateblue |
| white | | floralwhite | | turquoise | | darkslateblue |
| snow | | darkgoldenrod | | lightseagreen | | mediumslateblue |
| rosybrown | | goldenrod | | mediumturquoise | | mediumpurple |
| lightcoral | | cornsilk | | azure | | rebeccapurple |
| indianred | | gold | | lightcyan | | blueviolet |
| brown | | lemonchiffon | | paleturquoise | | indigo |
| firebrick | | khaki | | darkslategray | | darkorchid |
| maroon | | palegoldenrod | | darkslategrey | | darkviolet |
| darkred | | darkkhaki | | teal | | mediumorchid |
| red | | ivory | | darkcyan | | thistle |
| mistyrose | | beige | | aqua | | plum |
| salmon | | lightyellow | | cyan | | violet |
| tomato | | lightgoldenrodyellow | | darkturquoise | | purple |
| darksalmon | | olive | | cadetblue | | darkmagenta |
| coral | | yellow | | powderblue | | fuchsia |
| orangered | | olivedrab | | lightblue | | magenta |
| lightsalmon | | yellowgreen | | deepskyblue | | orchid |
| sienna | | darkolivegreen | | skyblue | | mediumvioletred |
| seashell | | greenyellow | | lightskyblue | | deeppink |
| chocolate | | chartreuse | | steelblue | | hotpink |
| saddlebrown | | lawngreen | | aliceblue | | lavenderblush |
| sandybrown | | honeydew | | dodgerblue | | palevioletred |
| peachpuff | | darkseagreen | | lightslategray | | crimson |
| peru | | palegreen | | lightslategrey | | pink |
| linen | | lightgreen | | slategray | | lightpink |
"
]
},
{
"cell_type": "markdown",
"id": "b0bf9e29-67aa-49e4-a332-5eee90c79746",
"metadata": {},
"source": [
"## tab10カラー\n",
"\n",
"tab10とは、MatplotlibのデフォルトのカラーパレットであるTableauに採用されている10色のことです。色とその名前は以下になります。\n",
"\n",
"% "
]
},
{
"cell_type": "markdown",
"id": "2c3c6fc0-87e6-405d-a6a6-942bc4ef7ece",
"metadata": {},
"source": [
"Color | Name | Color | Name | Color | Name | Color | Name | Color | Name |
---|
| tab:blue | | tab:green | | tab:purple | | tab:pink | | tab:olive |
| tab:orange | | tab:red | | tab:brown | | tab:gray | | tab:cyan |
"
]
},
{
"cell_type": "markdown",
"id": "df3f7eb4-1e58-4fe8-823c-15f4d97f7a29",
"metadata": {},
"source": [
"## Cnカラー\n",
"\n",
"Cnカラーは、Matplotlibの描画スタイルに適用されている色を順に取得する方法です。`\"C0\"`, `\"C1\"`, ...のように、`\"C\"`の後ろに数字を付けて指定します。Matplotlibのデフォルト設定ではtab10と同じ色です。\n",
"\n",
"以下に例を示します。`\"C0\"`が青、`\"C1\"`がオレンジ、`\"C2\"`が緑になっていることが分かります。"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7ebbc74e-2719-4650-b504-8afb7096adb1",
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"fig, ax = plt.subplots()\n",
"ax.plot([2, 3, 1], label=\"0\")\n",
"ax.plot([1, 2, 0], label=\"1\")\n",
"ax.plot([0, 1, -1], label=\"2\")\n",
"ax.legend()\n",
"plt.show()\n",
"\n",
"fig, ax = plt.subplots()\n",
"ax.plot([2, 3, 1], color=\"C2\", label=\"C2\")\n",
"ax.plot([1, 2, 0], color=\"C1\", label=\"C1\")\n",
"ax.plot([0, 1, -1], color=\"C0\", label=\"C0\")\n",
"ax.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "66891ee9-753f-4ef8-a56e-8bbbc74dbc04",
"metadata": {},
"source": [
"一方、Cnカラーでは描画スタイルが変わると、それに合わせた色になります。以下は`ggplot`という描画スタイルを適用した場合の例です。デフォルトの色が変わり、`\"C0\"`, `\"C1\"`, `\"C2\"`で指定した色も変わっていることが分かります。`\"C0\"`が朱色、`\"C1\"`が青、`\"C2\"`が紫です。"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "bc7a42be-ceb8-44dc-8ab0-f6048360fc26",
"metadata": {},
"outputs": [],
"source": [
"import matplotlib\n",
"matplotlib.style.use(\"ggplot\")\n",
"\n",
"fig, ax = plt.subplots()\n",
"ax.plot([2, 3, 1], label=\"0\")\n",
"ax.plot([1, 2, 0], label=\"1\")\n",
"ax.plot([0, 1, -1], label=\"2\")\n",
"ax.legend()\n",
"plt.show()\n",
"\n",
"fig, ax = plt.subplots()\n",
"ax.plot([2, 3, 1], color=\"C2\", label=\"C2\")\n",
"ax.plot([1, 2, 0], color=\"C1\", label=\"C1\")\n",
"ax.plot([0, 1, -1], color=\"C0\", label=\"C0\")\n",
"ax.legend()\n",
"plt.show()\n",
"\n",
"# 描画スタイルをデフォルトに戻す\n",
"plt.style.use('default') \n",
"matplotlib.rcParams['figure.figsize'] = (6.0, 4.0)\n",
"plt.rcParams['figure.dpi'] = 72.0"
]
},
{
"cell_type": "markdown",
"id": "44dee09a-3f58-4830-aab3-eee4832f5cfa",
"metadata": {},
"source": [
"## RGB\n",
"\n",
"RGBカラーでは、赤(R), 緑(G), 青(B)の値をタプルで与えます。各値の範囲は0から1となります。値が大きいほど、その色の要素が強くなります。また、`(0,0,0)`で黒、`(1,1,1)`で白となります。"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f86baede-3e3f-4ec2-9d9d-2336d5fac89a",
"metadata": {},
"outputs": [],
"source": [
"fig, ax = plt.subplots()\n",
"ax.plot([2, 3, 1], color=(1,0,0), label=\"(1,0,0) (Red)\")\n",
"ax.plot([1, 2, 0], color=(0,1,0), label=\"(0,1,0) (Green)\")\n",
"ax.plot([0, 1, -1], color=(0,0,0), label=\"(0,0,0) (Black)\")\n",
"ax.plot([-1, 0, -2], color=(1,1,1), label=\"(1,1,1) (White)\")\n",
"ax.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "d65e5f99-c0f2-4057-8842-1120047ad30c",
"metadata": {},
"source": [
"## RGBA\n",
"\n",
"RGBAカラーでは、赤(R), 緑(G), 青(B), 透明度(A)の値をタプルで与えます。各値の範囲は0から1となります。RGBについては、値が大きいほど、その色の要素が強くなります。また、`(0,0,0)`で黒、`(1,1,1)`で白となります。透明度(A)については、値が小さいほど透明に近づきます。\n",
"\n",
"以下に透明度(A)を変化させた例を示します。"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f2873f33-ce5a-4adb-9fa5-5d1ae60e64ba",
"metadata": {},
"outputs": [],
"source": [
"fig, ax = plt.subplots()\n",
"ax.plot([2, 3, 1], color=(1,0,0,1), label=\"A=1\")\n",
"ax.plot([1, 2, 0], color=(1,0,0,0.8), label=\"A=0.8\")\n",
"ax.plot([0, 1, -1], color=(1,0,0,0.5), label=\"A=0.5\")\n",
"ax.plot([-1, 0, -2], color=(1,0,0,0.3), label=\"A=0.3\")\n",
"ax.plot([-2, -1, -3], color=(1,0,0,0), label=\"A=0\")\n",
"ax.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "0624d86e-8c8c-48bb-adfa-b1052751c43e",
"metadata": {},
"source": [
"## 16進数\n",
"\n",
"16進数では、RGBカラーと同様に赤(R), 緑(G), 青(B)の値を16進数で与えます。先頭を`#`として、その後にRGBをそれぞれ2桁の16進数で繋げた文字列とします。\n",
"各値の範囲は00からFFとなります。値が大きいほど、その色の要素が強くなります。また、`#000000`で黒、`#FFFFFF`で白となります。\n",
"\n",
"なお、各色で同じ文字が連続するとき、以下のようにそれぞれ1文字に短縮できます。\n",
"- `\"#FFFFFF\"` -> `\"#FFF\"`\n",
"- `\"#00FF00\"` -> `\"#0F0\"`"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c45c76e7-6da6-4409-98e2-d46a28a51d66",
"metadata": {},
"outputs": [],
"source": [
"fig, ax = plt.subplots()\n",
"ax.plot([2, 3, 1], color=\"#FF0000\", label=\"#FF0000 (Red)\")\n",
"ax.plot([1, 2, 0], color=\"#00FF00\", label=\"#00FF00 (Green)\")\n",
"ax.plot([0, 1, -1], color=\"#000000\", label=\"#000000 (Black)\")\n",
"ax.plot([-1, 0, -2], color=\"#FFF\", label=\"#FFF (White)\")\n",
"ax.legend()\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.7"
}
},
"nbformat": 4,
"nbformat_minor": 5
}