복붙노트

[PYTHON] Matplotlib 축 범례의 글꼴 크기를 설정하는 방법?

PYTHON

Matplotlib 축 범례의 글꼴 크기를 설정하는 방법?

다음과 같은 코드가 있습니다.

import matplotlib.pyplot as plt
from matplotlib.pyplot import *
from matplotlib.font_manager import FontProperties

fontP = FontProperties()
fontP.set_size('xx-small')
fig=plt.figure()
ax1=fig.add_subplot(111)
plot([1,2,3], label="test1")
ax1.legend(loc=0, ncol=1, bbox_to_anchor=(0, 0, 1, 1),
           prop = fontP,fancybox=True,shadow=False,title='LEGEND')
plt.show()

플롯에서 Fontsize의 설정이 범례 제목 글꼴 크기에 영향을 미치지 않는 것을 볼 수 있습니다.

범례 제목의 글꼴 크기를 더 작은 크기로 설정하는 방법?

해결법

  1. ==============================

    1.이 질문은 분명히 오래된 질문 이었지만 나에게도 좌절감을 줄 수 있었으며 다른 답변으로는 전설 제목이 fontsize로 바뀌지 않았습니다. 대신 텍스트의 나머지 부분을 변경했습니다. 그래서 잠시 동안 matplotlib 문서에 대한 내 머리를 두드리는 후 나는 이것을 생각해 냈다.

    이 질문은 분명히 오래된 질문 이었지만 나에게도 좌절감을 줄 수 있었으며 다른 답변으로는 전설 제목이 fontsize로 바뀌지 않았습니다. 대신 텍스트의 나머지 부분을 변경했습니다. 그래서 잠시 동안 matplotlib 문서에 대한 내 머리를 두드리는 후 나는 이것을 생각해 냈다.

    legend = ax1.legend(loc=0, ncol=1, bbox_to_anchor=(0, 0, 1, 1),
               prop = fontP,fancybox=True,shadow=False,title='LEGEND')
    
    plt.setp(legend.get_title(),fontsize='xx-small')
    
  2. ==============================

    2.범례 목록 및 / 또는 범례 제목의 글꼴 크기를 변경하는 방법은 다음과 같습니다.

    범례 목록 및 / 또는 범례 제목의 글꼴 크기를 변경하는 방법은 다음과 같습니다.

    legend=plt.legend(list,loc=(1.05,0.05), title=r'$\bf{Title}$') #Legend: list, location, Title (in bold)
    legend.get_title().set_fontsize('6') #legend 'Title' fontsize
    plt.setp(plt.gca().get_legend().get_texts(), fontsize='12') #legend 'list' fontsize
    
  3. ==============================

    3.나는 어떻게 개인 음모를 꾸미는 지 모르지만 나는 항상 그것을 세계적으로한다.

    나는 어떻게 개인 음모를 꾸미는 지 모르지만 나는 항상 그것을 세계적으로한다.

    plt.rc('legend',**{'fontsize':6})
    
  4. ==============================

    4.내 머리도 부딪 히고, 여기에 또 다른 흐르는 방법이 있습니다.

    내 머리도 부딪 히고, 여기에 또 다른 흐르는 방법이 있습니다.

    leg = ax.legend()
    leg.set_title('A great legend',prop={'size':14})
    
  5. ==============================

    5.나는 일반적으로 이렇게합니다. 줄거리가 끝나면 나는 다음과 같이한다.

    나는 일반적으로 이렇게합니다. 줄거리가 끝나면 나는 다음과 같이한다.

    plt.legend(loc=0, numpoints=1)
    leg = plt.gca().get_legend()
    ltext  = leg.get_texts()
    plt.setp(ltext, fontsize='small') 
    

    이게 너에게 효과가 있는지 모르겠다.

  6. ==============================

    6.이것은 가장 빠릅니다.

    이것은 가장 빠릅니다.

    plt.legend(loc=2,prop={'size':6})
    
  7. from https://stackoverflow.com/questions/12402561/how-to-set-font-size-of-matplotlib-axis-legend by cc-by-sa and MIT license