当然。 ax.legend()有两个参数形式,它接受对象(句柄)和字符串(标签)列表。使用一个虚拟对象(也称为
“proxy artist”)作为额外的字符串。我选择了一个matplotlib.patches.Rectangle没有填充和0线下面,但你可以使用任何支持的艺术家。
例如,假设您有4个对象(因为您没有发布用于生成图形的代码,我无法准确地重现)。
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
fig = plt.figure()
ax = fig.add_subplot(111)
bar_0_10 = ax.bar(np.arange(0,10), np.arange(1,11), color="k")
bar_10_100 = ax.bar(np.arange(0,10), np.arange(30,40), bottom=np.arange(1,11), color="g")
# create blank rectangle
extra = Rectangle((0, 0), 1, 1, fc="w", fill=False, edgecolor='none', linewidth=0)
ax.legend([extra, bar_0_10, bar_10_100], ("My explanatory text", "0-10", "10-100"))
plt.show()