[英]how to set label for each subplot in a plot in matplotlib?
假设我在数据集中有四个要素,并且每次都使用两个要素绘制散点图。我想分别为每个图提供标签。
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()
在这里,我将获得两个散点图,但未显示标签。 我想看到被允许作为第一个散点图的标签,而不被允许作为第二个散点图的标签。
我可以通过使用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()
如果你想设置标签制作散射后,却创造了传奇之前,你可以使用set_label
在PathCollection
通过返回的scatter
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()
在这三种情况下,结果都将如下所示:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.