Вторичный y на pandas графике гистограммы. Легенда пропала - PullRequest
0 голосов
/ 28 февраля 2020

У меня проблемы с легендами в простом задании pandas. Кажется, вторая легенда скрыта первым графом.

Образец моего df:

print(campaign.head(10))

    hour_read  hour_sent
0        16.0         13
1        14.0         13
2        13.0         13
3        14.0         13
4         NaN         13
5        13.0         13
6        13.0         13
7        16.0         13
8        14.0         13
9        16.0         13
10       15.0         15
11       16.0         15
12       15.0         15
13       15.0         15
14       15.0         15

Я могу нанести оба эти ряда на одну и ту же гистограмму, и я использую `second_y '.

Однако я могу' Легенда для hour_read появится. Независимо от того, что я пытаюсь с опциями легенды.

plt.figure(figsize=(15,8))
plt.xlabel('Email sent vs open hour')

campaign.hour_read.plot(kind='hist',alpha=0.8,  label='Hour Read')

campaign.hour_sent.plot(kind='hist',alpha=0.8 ,secondary_y=True, label='Hour Sent')

plt.legend(loc='upper right')


plt.show()

enter image description here

Я также попытался сначала настроить отдельные оси. И используя #ax1.legend(loc=1) и ax2.legend(loc=2) со многими различными вариантами. Я думаю, что сюжет hour sent полностью покрывает легенду hour_read. Как я могу обойти это?

1 Ответ

0 голосов
/ 28 февраля 2020
fig=plt.figure()

plt.xlabel('Email sent vs open hour')

campaign.hour_read.plot(kind='hist',alpha=0.8,  label='Hour Read')

campaign.hour_sent.plot(kind='hist',alpha=0.8 ,secondary_y=True, label='Hour Sent')


handles,labels = [],[]
for ax in fig.axes:
    for h,l in zip(*ax.get_legend_handles_labels()):
        handles.append(h)
        labels.append(l)

plt.legend(handles,labels)
plt.show()

enter image description here

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