複数のグラフを重ねて描画する際の色と線の種類を管理する方法
複数のデータセットを1つのプロットに描画する際、色や線のスタイルを調整して視覚的に区別しやすくすることが重要です。ここでは、Matplotlibを使用して色や線の種類を指定・管理するいくつかの方法について説明します。
目次
1. 色の指定方法
色の指定には複数の方法があります。以下の例では、異なる形式で色を指定しています。
-
名前付き色:
'red'
,'blue'
,'green'
など -
16進数カラーコード:
'#FF0000'
,'#0000FF'
など -
RGB値:
(1, 0, 0)
(赤),(0, 0, 1)
(青)
plt.plot(x, y1, color='red')
plt.plot(x, y2, color='#0000FF')
plt.plot(x, y3, color=(0, 1, 0))
2. 線のスタイル指定方法
線のスタイルも指定でき、視覚的にグラフの区別がしやすくなります。
-
実線:
'-'
-
破線:
'--'
-
点線:
':'
-
一点鎖線:
'-.'
plt.plot(x, y1, linestyle='-')
plt.plot(x, y2, linestyle='--')
plt.plot(x, y3, linestyle=':')
3. カラーサイクルの設定
複数のプロットがある場合、カラーサイクルを設定することで、自動的に異なる色が割り当てられます。
import matplotlib.pyplot as plt
from cycler import cycler
colors = ['red', 'blue', 'green', 'purple']
plt.rc('axes', prop_cycle=(cycler('color', colors)))
# プロット例
plt.plot(x, y1)
plt.plot(x, y2)
plt.plot(x, y3)
plt.show()
4. プロットごとの手動設定
各プロットに対して色や線のスタイルを指定する方法です。label
を指定すると凡例にも自動で適用されます。
plt.plot(x, y1, color='red', linestyle='-', label='Line 1')
plt.plot(x, y2, color='blue', linestyle='--', label='Line 2')
plt.plot(x, y3, color='green', linestyle='-.', label='Line 3')
plt.legend()
plt.show()
5. カラーマップの使用
カラーマップを使用すると、多数のデータセットを色分けする際に便利です。
import numpy as np
import matplotlib.pyplot as plt
num_lines = 5
x = np.linspace(0, 10, 100)
y = [np.sin(x + i) for i in range(num_lines)]
cm = plt.get_cmap('viridis') # カラーマップの選択
for i in range(num_lines):
plt.plot(x, y[i], color=cm(i / num_lines), label=f'Line {i+1}')
plt.legend()
plt.show()
6. まとめ
これらの手法を活用することで、複数のグラフを1つの図に効果的に描画し、視覚的な区別をつけることができます。各データの内容や視認性に応じて、最適な色と線のスタイルを選択してください。
参考文献
[1] How to Change Line Color in Matplotlib
[2] Multiple Lines in Matplotlib
[3] Matplotlib Legend Guide
[4] Python Plotting with Matplotlib