我正在 matplotlib 中制作一些图,并想为一些数据添加解释性文本。我想在我的图例中有一个字符串作为“0-10”项上方的单独图例项。有谁知道是否有可能的方法来做到这一点?
这是我的传奇的代码:
ax.legend(['0-10','10-100','100-500','500+'],loc='best')
我正在 matplotlib 中制作一些图,并想为一些数据添加解释性文本。我想在我的图例中有一个字符串作为“0-10”项上方的单独图例项。有谁知道是否有可能的方法来做到这一点?
这是我的传奇的代码:
ax.legend(['0-10','10-100','100-500','500+'],loc='best')
当然。ax.legend()
有一个接受对象列表(句柄)和字符串列表(标签)的两个参数形式。为您的额外字符串使用虚拟对象(又名“代理艺术家” )。我在下面选择了一个matplotlib.patches.Rectangle
没有填充和 0 linewdith 的,但你可以使用任何受支持的艺术家。
例如,假设您有 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()
我找到了另一种方法来尝试:
plt.legend(title='abc xyz')
我在工作中使用了这个!