반응형
범례 Python Matplotlib의 특정 항목 만 표시
저는 현재 많은 양의 분류 학적 데이터에 대한 누적 막대 그래프를 플로팅하고 있으며 범례에서 중요한 종만 표시하고 싶습니다 (~ 500 개 중 ~ 25 개를 표시하고 싶습니다). 이를 수행하는 간단한 방법이 있습니까? 다음은 내가 가진 코드입니다.
labels=['0','20','40','60','80','100','120']
ax1=subj1df.plot(kind='barh', stacked=True,legend=True,cmap='Paired', grid=False)
legend(ncol=2,loc=2, bbox_to_anchor=(1.05, 1), borderaxespad=0.)
label1=['Baseline','8h','24h','48h','96h','120h']
ax1.set_yticklabels(label1, fontdict=None, minor=False)
plt.title('Subject 1 Phyla',fontweight='bold')
plt.savefig('Subject1Phyla.eps', format='eps', dpi=1000)
ax1.set_xticklabels(labels)
편집 : 하나의 범례 항목 만 표시하기 위해 이것을 추가하려고 시도했지만 빈 범례 만 반환합니다.
h, l = ax1.get_legend_handles_labels()
legend(l[4],h[4],ncol=2,loc=2, bbox_to_anchor=(1.05, 1), borderaxespad=0.)
종종 표시하고 싶지 않은 범례에 대해 빈 레이블을 삽입합니다. 나는 당신에게 도움이되기를 바라는 매우 간단한 예를 만들었습니다. 이를 자신의 데이터로 조정해야하지만 필요한 요소는 거기에 있어야합니다.
import matplotlib.pyplot as plt
import numpy as np
myY=np.random.randint(20, size=10)
myX=np.arange(0,len(myY))
selected=[5,10,15]
fig = plt.figure()
for X,Y in zip(myX,myY):
if Y in selected:
mylabel="label = %s"%(Y); mycolor='blue'
else:
mylabel=None; mycolor='red'
plt.scatter(X,Y,50, color=mycolor, label=mylabel)
plt.legend()
plt.show()
그러면 다음 플롯이 생성됩니다.
이것은 작동합니다 :
plt.plot(x, y, label='_nolegend_')
어떤 이유로 든 두 답변 모두 내 상황에 맞지 않았습니다. 효과가 있었고 실제로 위에 표시되었습니다.
legend는 또한 아티스트 목록과 레이블 목록을 가져 와서 전설에 들어가는 내용을 정확하게 제어합니다 – tacaswell
import pandas as pd
import matplotlib.pyplot as plt
import pylab
pd.Series(range(10)).plot(color = 'grey')
x = list(range(10))
y = [i + 1 for i in x]
scat1 = plt.scatter(x, y)
pylab.legend([scat1],['moved points'], loc = 'upper left')
plt.show()
코드의 결과 :
빈 문자열 변수를 사용할 수도 있습니다.
plt.plot(xData, yData, ..., label=str())
빈 str () 객체를 전달하면 아무것도 기록하지 않습니다.
참조 URL : https://stackoverflow.com/questions/24680981/show-only-certain-items-in-legend-python-matplotlib
반응형
'developer tip' 카테고리의 다른 글
Django는 애플리케이션의 모델 목록을 가져옵니다. (0) | 2021.01.05 |
---|---|
Bash에서 숫자로 문자열 정렬 (0) | 2021.01.05 |
외부를 클릭하여 jquery 드롭 다운 메뉴 닫기 (0) | 2021.01.05 |
문자열에서 ASCII가 아닌 문자 제거 (0) | 2021.01.05 |
문서에서 일부 필드를 제외하는 방법 (0) | 2021.01.05 |