Как удалить конкретную метку легенды в Dataframe.plot?

avatar
L. Li
8 апреля 2018 в 03:34
1918
1
5

Я пытаюсь построить два кадра данных вместе, используя стиль "столбец" и стиль "линия" соответственно, но у меня возникают проблемы при отображении легенды только для столбцов, исключая линию.

Вот мои коды:

import numpy as np
import pandas as pd

np.random.seed(5)
df = pd.DataFrame({'2012':np.random.random_sample((4,)),'2014':np.random.random_sample((4,))})
df.index = ['A','B','C','D']
sumdf = df.T.apply(np.sum,axis=1)
ax = df.T.plot.bar(stacked=True)
sumdf.plot(ax=ax)
ax.set_xlim([-0.5,1.5])
ax.set_ylim([0,3])
ax.legend(loc='upper center',ncol=3,framealpha=0,labelspacing=0,handlelength=4,borderaxespad=0)

Досадно получил это: Рисунок, где легенда линии также показана в поле легенды. Я хочу удалить его, а не сделать невидимым.

Но я не нахожу пути.

Спасибо!

Источник

Ответы (1)

avatar
Ami Tavory
8 апреля 2018 в 08:47
10

Если метка matplotlib.legend's начинается с подчеркивания, она не будет отображаться в легенде по умолчанию.

Вы можете просто изменить

sumdf.plot(ax=ax)

до

sumdf.plot(ax=ax, label='_')

enter image description here