データセットに4つの機能があり、毎回2つの機能を使用して散布図をプロットしているとしましょう。各プロットに個別にラベルを付けたいと思います。
_fig,axes=plt.subplots(ncols=2,figsize=(10,8))
axes[0].scatter(x1,x2],marker="o",color="r")
axes[1].scatter(x3,x4,marker="x",color="k")
axes[0].set(xlabel="Exam score-1",ylabel="Exam score-2")
axes[1].set(xlabel="Exam score-1",ylabel="Exam score-2")
axes[0].set_label("Admitted")
axes[1].set_label("Not-Admitted")
axes.legend()
plt.show()
_
ここでは2つの散布図が表示されますが、ラベルは表示されません。最初のプロットのラベルとしてadmittedを、2番目の散布図のnot-admittedを確認します。
plt.legend()
を使用してラベルを付けることはできますが、作成済みのプロットは取得できません。
散布ではなく、軸のラベルを設定しています。
プロットの凡例エントリを取得する最も便利な方法は、label
引数を使用することです。
import numpy as np
import matplotlib.pyplot as plt
x, y = np.random.Rand(2,23)
fig,axes=plt.subplots(ncols=2)
axes[0].scatter(x,y, marker="o", color="r", label="Admitted")
axes[1].scatter(x,y, marker="x", color="k", label="Not-Admitted")
axes[0].set(xlabel="Exam score-1", ylabel="Exam score-2")
axes[1].set(xlabel="Exam score-1", ylabel="Exam score-2")
axes[0].legend()
axes[1].legend()
plt.show()
スキャッターの作成後、凡例を作成する前にラベルを設定する場合は、PathCollection
によって返されるscatter
に対してset_label
を使用できます。
import numpy as np
import matplotlib.pyplot as plt
x, y = np.random.Rand(2,23)
fig,axes=plt.subplots(ncols=2)
sc1 = axes[0].scatter(x,y, marker="o", color="r")
sc2 = axes[1].scatter(x,y, marker="x", color="k")
axes[0].set(xlabel="Exam score-1", ylabel="Exam score-2")
axes[1].set(xlabel="Exam score-1", ylabel="Exam score-2")
sc1.set_label("Admitted")
sc2.set_label("Not-Admitted")
axes[0].legend()
axes[1].legend()
plt.show()
最後に、凡例呼び出し内でラベルを設定できます。
import numpy as np
import matplotlib.pyplot as plt
x, y = np.random.Rand(2,23)
fig,axes=plt.subplots(ncols=2)
sc1 = axes[0].scatter(x,y, marker="o", color="r")
sc2 = axes[1].scatter(x,y, marker="x", color="k")
axes[0].set(xlabel="Exam score-1", ylabel="Exam score-2")
axes[1].set(xlabel="Exam score-1", ylabel="Exam score-2")
axes[0].legend([sc1], ["Admitted"])
axes[1].legend([sc2], ["Not-Admitted"])
plt.show()
3つのケースすべてで、結果は次のようになります。