Я строю подобную информацию с помощью сюжетов, используя matplotlib. У меня есть 2 графика на сетке 1x2, все с одинаковым количеством линий. Я пытаюсь сделать общую легенду для обоих сюжетов. Я видел предложенную функцию get_legend_handles_labels
в разных местах. В настоящее время мой код выглядит следующим образом:
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1,2, figsize=(10,5), sharey=True, sharex=True)
plt.tight_layout()
ax[0].plot(time, mindist_A, zorder=1, label='Minimum distance between protein A and its period image')
ax[1].plot(time, mindist_B, zorder=1, label='Minimum distance between protein B and its period image', color='g')
ax[0].hlines(y=1, xmin=0.0, xmax=2000000.0, color='r', lw=2, zorder=2)
ax[1].hlines(y=1, xmin=0.0, xmax=2000000.0, color='r', lw=2, zorder=2, label='Cut-off')
plt.ticklabel_format(axis='x', style='sci', scilimits=(0,0), useOffset=False)
ax[0].set_ylabel('Distance')
ax[0].set_xlabel('Time')
ax[1].set_xlabel('Time')
handles, labels = ax.get_legend_handles_labels()
fig.legend(handles, labels, loc='upper center')
plt.show()
В моей легенде я хотел бы видеть «Минимальное расстояние между белком А и его изображением периода», «Минимальное расстояние между белком В и его изображением периода» и « Cut-off ".
Я получаю следующую ошибку:
AttributeError: 'numpy .ndarray' объект не имеет атрибута 'get_legend_handles_labels'
Я предполагаю, что у меня возникает ошибка при применении get_legend_handles_labels
, но я не вижу, как ее решить.