본문 바로가기
파이썬

파이썬 Latex를 사용하여 렌더링 할 때 matplotlib 플롯에서 축 눈금 글꼴을 어떻게 변경합니까?

by º기록 2021. 2. 7.
반응형

다음 코드에서 생성 된 축 눈금 표시 레이블의 글꼴은 Helvetica가 아니지만 여전히 기본 serif Computer Modern입니다. 어떤 제안이라도 대단히 감사합니다.

from matplotlib import rc, font_manager
from numpy import arange, cos, pi
from matplotlib.pyplot import figure, axes, plot, xlabel, ylabel, title, grid, savefig, show

sizeOfFont = 12
fontProperties = {'family':'sans-serif','sans-serif':['Helvetica'],
    'weight' : 'normal', 'size' : sizeOfFont}
ticks_font = font_manager.FontProperties(family='Helvetica', style='normal',
    size=sizeOfFont, weight='normal', stretch='normal')
rc('text', usetex=True)
rc('font',**fontProperties)
figure(1, figsize=(6,4))
ax = axes([0.1, 0.1, 0.8, 0.7])
t = arange(0.0, 1.0+0.01, 0.01)
s = cos(2*2*pi*t)+2
plot(t, s)

for label in ax.get_xticklabels():
    label.set_fontproperties(ticks_font)

for label in ax.get_yticklabels():
    label.set_fontproperties(ticks_font)

xlabel(r'\textbf{time (s)}')
ylabel(r'\textit{voltage (mV)}',fontsize=16,family='Helvetica')
title(r"\TeX\ is Number $\displaystyle\sum_{n=1}^\infty\frac{-e^{i\pi}}{2^n}$!",
    fontsize=16, color='r')
grid(True)
savefig('tex_demo.pdf')

show()

 

해결 방법

 

좋아, 이것은 나를 위해 일했다. 다음 줄을 바꿉니다.

for label in ax.get_xticklabels():
    label.set_fontproperties(ticks_font)

for label in ax.get_yticklabels():
    label.set_fontproperties(ticks_font)

이것으로 :

from matplotlib.pyplot import gca
a = gca()
a.set_xticklabels(a.get_xticks(), fontProperties)
a.set_yticklabels(a.get_yticks(), fontProperties)

원래 코드에서 수행 한 작업은 나에게 의미가 있지만 이런 방식으로 다른 결과를 얻습니다. 기묘한.

 

참조 페이지 https://stackoverflow.com/questions/12322738

 

 

반응형

댓글