[matplotlib] matplotlib 그림에서 범례 제거

matplotlib 플롯에 범례를 추가하려면 간단히 실행 legend()합니다.

줄거리에서 범례 를 제거 하는 방법 ?

(내가 가장 가까운 것은 legend([])데이터에서 범례를 비우기 위해 실행 하는 것입니다. 그러나 오른쪽 상단 모서리에 못생긴 흰색 사각형이 남습니다.)



답변

현재 하기 matplotlibv1.4.0rc4 하는 remove방법은 범례 객체에 추가되었다.

용법:

ax.get_legend().remove()

또는

legend = ax.legend(...)
...
legend.remove()

이것이 도입 된 커밋에 대해서는 여기 를 참조 하십시오 .


답변

Pandas 데이터 프레임을 플로팅하고 범례를 제거하려면 plot = None을 매개 변수로 plot 명령에 추가하십시오.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df2 = pd.DataFrame(np.random.randn(10, 5))
df2.plot(legend=None)
plt.show()


답변

범례의 set_visible방법을 사용할 수 있습니다 .

ax.legend().set_visible(False)
draw()

이것은 내가 얼마 전에 여기에 했던 비슷한 질문에 대한 대답으로 나에게 제공된 대답을 기반으로합니다.

(해당 답변에 감사드립니다. Jouni-질문에 답변으로 표시 할 수 없어서 죄송합니다. 아마도 권한을 가진 사람이 저를 위해 그렇게 할 수 있습니까?)


답변

다음 코드 줄을 추가해야합니다.

ax = gca()
ax.legend_ = None
draw()

gca ()는 현재 좌표축 핸들을 반환하며 그 속성은 legend_입니다.


답변

fig와 ax plot 객체를 사용하지 않는다면 다음과 같이 할 수 있습니다 :

import matplotlib.pyplot as plt

# do plot specifics
plt.legend('')
plt.show()


답변

전화 pyplot하면plt

frameon=False 범례 주변의 테두리를 제거하는 것입니다

”는 범례에 변수가 없어야한다는 정보를 전달합니다.

import matplotlib.pyplot as plt
plt.legend('',frameon=False)


답변

축이 아닌 그림에 추가하여 범례를 만들었습니다 (matplotlib 2.2.2). 그것을 제거하기 legends위해 그림 의 속성을 빈 목록으로 설정했습니다.

import matplotlib.pyplot as plt

fig = plt.figure()
ax1 = fig.add_subplot(111)
ax2 = ax1.twinx()

ax1.plot(range(10), range(10, 20), label='line 1')
ax2.plot(range(10), range(30, 20, -1), label='line 2')

fig.legend()

fig.legends = []

plt.show()