Matplotlib で手動凡例を作成する方法 (例付き)
matplotlib.linesおよびmatplotlib.patchesサブモジュールの関数を使用して、matplotlib プロットに手動凡例を作成できます。
次の例は、これを行う方法を示しています。
例: Matplotlib で手動凡例を作成する
次のコードは、デフォルトの凡例を使用して matplotlib で散布図を作成する方法を示しています。
import matplotlib. pyplot as plt
#define data to plot
x = [1, 2, 3, 4, 5, 6, 7]
y = [2, 3, 5, 8, 12, 18, 27]
#create scatter plot of x vs. y
plt. scatter (x, y, label=' Original Data ', color=' steelblue ')
#add legend
plt. legend ()
#displayplot
plt. show ()
カスタムの線と四角形を含む手動凡例を作成するには、 matplotlib.linesサブモジュールとmatplotlib.patchesサブモジュールをインポートする必要があります。
次のコードは、これらのサブモジュールを使用して手動凡例を作成する方法を示しています。
import matplotlib. pyplot as plt
from matplotlib. lines import Line2D
import matplotlib. patches as mpatches
#define data to plot
x = [1, 2, 3, 4, 5, 6, 7]
y = [2, 3, 5, 8, 12, 18, 27]
#create scatter plot of x vs. y
plt. scatter (x, y, label=' Original Data ', color=' steelblue ')
#define handles and labels that will get added to legend
handles, labels = plt. gca (). get_legend_handles_labels ()
#define patches and lines to add to legend
patch1 = mpatches. Patch (color=' orange ', label=' First Manual Patch ')
patch2 = mpatches. Patch (color=' orange ', label=' First Manual Patch ')
line1 = Line2D([0], [0], label=' First Manual Line ', color=' purple ')
line2 = Line2D([0], [0], label=' Second Manual Line ', color=' red ')
#add handles
handles. extend ([patch1, line1, line2])
#add legend
plt. legend (handles=handles)
#displayplot
plt. show ()
この凡例には、元のデータのラベルが含まれるだけでなく、手動で追加した要素のラベルと形状も含まれることに注意してください。
いずれかの要素のラベルまたは色を変更するには、前のコード部分のラベルと色の引数の値を変更するだけです。
注: プロット内の凡例の位置を変更する方法については、 このチュートリアルを参照してください。
追加リソース
次のチュートリアルでは、Matplotlib で他の一般的なタスクを実行する方法を説明します。
Matplotlib でプロット サイズを増やす方法
Matplotlib でタイトルの位置を調整する方法
Matplotlib で軸範囲を設定する方法