Конечно. 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()
![пример вывода](https://i.stack.imgur.com/FQn2U.png)
person
Jeff Tratner
schedule
30.05.2013
annotate()
. Я только что задал аналогичный вопрос: stackoverflow.com/questions/16823703/adding- этикетка-контур - person theta   schedule 30.05.2013title
? т.е.ax.legend(['0-10','10-100','100-500','500+'], loc='best', title='Explanatory text')
. - person sodd   schedule 31.05.2013