【Matplotlib】凡例で2つのマーカーに同じラベルを共有させる方法
Matplotlibでは、label引数に同じ文字列を指定することで、複数のプロット(マーカーや線)が凡例上で同じラベルを共有するようにできます。ここでは、sin波とcos波を同じラベル「y=f(x)」で凡例に表示する具体的な手順を紹介します。
実装手順
- 図のサイズを設定し、サブプロット間および周囲の余白を調整します。
- NumPyを使用して、xとyのデータポイントを作成します。
- plot()メソッドを使い、sin(x)とcos(x)をそれぞれ異なる線種でプロットします。
- loc=1(右上)を指定して凡例を配置します。
- show()メソッドで図を画面に表示します。
コード例
import numpy as np import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True x = np.linspace(-5, 5, 100) plt.plot(x, np.sin(x), ls="dotted", label='y=f(x)') plt.plot(x, np.cos(x), ls="-", label='y=f(x)') plt.legend(loc=1) plt.show()
出力結果

このコードを実行すると、点線のsin波と実線のcos波が、どちらも「y=f(x)」という同一のラベルで凡例にまとめて表示されます。
注意点
技術的には上記の方法で簡単にラベルを共有できますが、実際のデータ可視化では推奨されません。凡例は各プロットの内容を識別するためのものであり、異なるプロットにはそれぞれ異なるマーカーやラベルを割り当てるのが基本です。同じラベルを共有させると、読み手がグラフの意味を正しく理解できなくなる恐れがあります。特別な理由がある場合のみ使用するようにしましょう。
-
Matplotlibで軸ラベルと凡例に下付き文字(サブスクリプト)を表示する方法
Matplotlibでは、TeX/LaTeX形式の数式記法($...$)を利用することで、軸ラベルや凡例に下付き文字(サブスクリプト)や上付き文字(スーパースクリプト)を簡単に表示できます。この記事では、その具体的な手順をコード例とともに解説します。 実装手順 データの作成: NumPyを使ってxとyのデータポイントを作成します。 プロット: 上付き文字を含むラベルを付けて、xとyのデータポイントをプロットします。 軸ラベルの設定: 下付き文字を含むテキストで xlabel() と ylabel() を使用します。 凡例の配置: legend() メソッドを使ってプロットに凡例を配置します
-
Pythonで2つのプロットを並べて作成する方法【matplotlibのsubplot活用】
matplotlibのsubplot(row, col, index)メソッドを使うと、1つの図(figure)を行数×列数の領域に分割し、指定したインデックスの位置にそれぞれグラフを描画できます。本記事では、このメソッドを利用して、1つの図の中に2つのグラフを横並びで作成する方法を解説します。 実装の手順 numpyを使って、x座標と2種類のy座標(y1、y2)のデータポイントを作成します。 nrows=1、ncols=2、index=1を指定してsubplot()メソッドを呼び出し、現在のfigureに最初のサブプロットを追加します。 plot()メソッドで、xとy1のデータを使って折れ