Проблема построения легенды для двух участков с использованием подзаговоров с помощью matploblib - PullRequest
0 голосов
/ 04 марта 2020

Я строю подобную информацию с помощью сюжетов, используя 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, но я не вижу, как ее решить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...