source

matplotlib을 사용하여 범례 글꼴 크기를 변경하는 방법.음모.

ittop 2023. 5. 2. 22:57
반응형

matplotlib을 사용하여 범례 글꼴 크기를 변경하는 방법.음모.

여기 간단한 질문이 있습니다.나는 내 전설의 크기를 얻기 위해 노력 중입니다.matplotlib.pyplot더 작아지도록(즉, 텍스트가 더 작아지도록) 설정합니다.제가 사용하는 코드는 다음과 같습니다.

plot.figure()
plot.scatter(k, sum_cf, color='black', label='Sum of Cause Fractions')
plot.scatter(k, data[:, 0],  color='b', label='Dis 1: cf = .6, var = .2')
plot.scatter(k, data[:, 1],  color='r',  label='Dis 2: cf = .2, var = .1')
plot.scatter(k, data[:, 2],  color='g', label='Dis 3: cf = .1, var = .01')
plot.legend(loc=2)

범례에 대한 개별 글꼴 크기를 설정할 수 있습니다.prop키워드

plot.legend(loc=2, prop={'size': 6})

이것은 다음에 해당하는 키워드 사전을 사용합니다.matplotlib.font_manager.FontProperties특성.범례는 설명서를 참조하십시오.

키워드 인수:

prop: [ None | FontProperties | dict ]
    A matplotlib.font_manager.FontProperties instance. If prop is a 
    dictionary, a new instance will be created with prop. If None, use
    rc settings.

버전 1.2.1에서 키워드를 사용하는 것도 가능합니다.fontsize.

사용.import matplotlib.pyplot as plt

방법 1: 범례를 호출할 때 글꼴 크기 지정(반복)

plt.legend(fontsize=20) # using a size in points
plt.legend(fontsize="x-large") # using a named size

이 방법을 사용하면 작성 시 각 범례의 글꼴 크기를 설정할 수 있습니다(글꼴 크기가 다른 범례를 여러 개 가질 수 있음).그러나 범례를 만들 때마다 모든 항목을 수동으로 입력해야 합니다.

(참고: @Mathias711은 그의 답변에서 사용 가능한 명명된 글꼴 크기를 나열했습니다.)

방법 2: 글꼴 크기를 rcParams(편리)로 지정합니다).

plt.rc('legend',fontsize=20) # using a size in points
plt.rc('legend',fontsize='medium') # using a named size

이 방법을 사용하여 기본 범례 글꼴 크기를 설정하면 방법 1을 사용하여 달리 지정하지 않는 한 모든 범례가 자동으로 이 글꼴 크기를 사용합니다.즉, 코드 시작 부분에서 범례 글꼴 크기를 설정할 수 있으며 각 범례에 대해 범례 글꼴 크기를 설정할 필요가 없습니다.

예를 들어 명명된 크기를 사용하는 경우. 'medium'범례 텍스트는 전역에 따라 축척됩니다.font.sizercParams변경하는 방법font.size사용하다plt.rc(font.size='medium')

이거면 되겠군.

import pylab as plot
params = {'legend.fontsize': 20,
          'legend.handlelength': 2}
plot.rcParams.update(params)

그런 다음 나중에 플롯을 수행합니다.

다른 rcParam도 많이 있으며, matplot librc 파일에서도 설정할 수 있습니다.

또한 아마도 당신은 a를 통해 그것을 바꿀 수 있을 것입니다.matplotlib.font_manager.FontProperties예를 들어, 하지만 이건 어떻게 해야 할지 모르겠어요. --> 얀의 대답을 보세요.

점의 크기 이외에도 몇 가지 이름이 지정된 글꼴 크기가 있습니다.

xx-small
x-small
small
medium
large
x-large
xx-large

용도:

pyplot.legend(loc=2, fontsize = 'x-small')

2021년에는 matplotlib 3.4.2를 사용하여 범례 글꼴을 설정할 수 있습니다.

plt.legend(title="My Title", fontsize=10, title_fontsize=15)

어디에fontsize범례에 있는 항목의 글꼴 크기입니다.title_fontsize범례 제목의 글꼴 크기입니다.matplotlib 설명서의 자세한 정보

범례 크기를 조정하기 위한 여러 설정이 있습니다.제가 가장 유용하다고 생각하는 두 가지는 다음과 같습니다.

  • 레이블 간격: 레이블 항목 사이의 간격을 글꼴 크기의 배수로 설정합니다.예를 들어 10포인트 글꼴을 사용하면legend(..., labelspacing=0.2)항목 사이의 간격을 2점으로 줄입니다.설치 기본값은 약 0.5입니다.
  • 크기할 수 prop: 글꼴 크기 등을 모두 제어할 수 있습니다.다음을 사용하여 8포인트 글꼴을 설정할 수 있습니다.legend(..., prop={'size':8})제 설치 기본값은 약 14점입니다.

또한 범례 문서에는 다음과 같은 다른 패딩 및 간격 매개 변수가 나열되어 있습니다.borderpad,handlelength,handletextpad,borderaxespad,그리고.columnspacing이들은 모두 레이블 간격과 동일한 형식을 따르며 글꼴 크기도 여러 개입니다.

이러한 값은 matplot librc 파일을 사용하여 모든 그림에 대한 기본값으로 설정할 수도 있습니다.

설치할 때 글꼴 특성은 텍스트 크기만 변경하지만 텍스트 크기가 너무 크고 간격이 좁습니다.다음에서 매개 변수를 찾았습니다.pyplot.rcParams:legend.labelspacing폰트 크기의 일부로 설정되어 있는 것 같습니다.는 그것을 로다바니로

pyplot.rcParams.update({'legend.labelspacing':0.25})

pyplot.legend 함수 - 전달에 지정하는 방법을 잘 모르겠습니다.

prop={'labelspacing':0.25}

또는

prop={'legend.labelspacing':0.25}

오류와 함께 반환됩니다.

plot.legend(loc = 'lower right', decimal_places = 2, fontsize = '11', title = 'Hey there', title_fontsize = '20')

범례 크기 설정을 줄일 수 있습니다.

plt.legend(labelspacing=y, handletextpad=x,fontsize)  

레이블 간격은 각 레이블 사이의 수직 공간입니다.

핸들 텍스트패드는 실제 범례와 레이블 사이의 거리입니다.

그리고 글꼴 크기는 스스로 설명할 수 있습니다.

언급URL : https://stackoverflow.com/questions/7125009/how-to-change-legend-fontsize-with-matplotlib-pyplot

반응형