[python] Matplotlib은 눈금 레이블의 글꼴 크기를 작게 만듭니다.
matplotlib 그림에서 눈금 레이블의 글꼴 크기를 ax1.set_xticklabels()
작게 사용하려면 어떻게해야합니까?
또한 어떻게 수평에서 수직으로 회전시킬 수 있습니까?
답변
최신 버전의 MPL에는이 작업에 대한 바로 가기가 있습니다. 이 질문에 대한 다른 답변에 예가 나와 있습니다. https://stackoverflow.com/a/11386056/42346
아래 코드는 설명을위한 것이며 반드시 최적화 할 필요는 없습니다.
import matplotlib.pyplot as plt
import numpy as np
def xticklabels_example():
fig = plt.figure()
x = np.arange(20)
y1 = np.cos(x)
y2 = (x**2)
y3 = (x**3)
yn = (y1,y2,y3)
COLORS = ('b','g','k')
for i,y in enumerate(yn):
ax = fig.add_subplot(len(yn),1,i+1)
ax.plot(x, y, ls='solid', color=COLORS[i])
if i != len(yn) - 1:
# all but last
ax.set_xticklabels( () )
else:
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(14)
# specify integer or one of preset strings, e.g.
#tick.label.set_fontsize('x-small')
tick.label.set_rotation('vertical')
fig.suptitle('Matplotlib xticklabels Example')
plt.show()
if __name__ == '__main__':
xticklabels_example()
답변
실제로 더 간단한 방법이 있습니다. 방금 찾았습니다.
import matplotlib.pyplot as plt
# We prepare the plot
fig, ax = plt.subplots()
# We change the fontsize of minor ticks label
ax.tick_params(axis='both', which='major', labelsize=10)
ax.tick_params(axis='both', which='minor', labelsize=8)
이것은 label
귀하의 질문 의 일부 크기에만 답변합니다 .
답변
글꼴 크기와 회전을 동시에 지정하려면 다음을 시도하십시오.
plt.xticks(fontsize=14, rotation=90)
답변
또는 다음을 수행 할 수 있습니다.
import matplotlib as mpl
label_size = 8
mpl.rcParams['xtick.labelsize'] = label_size
답변
plt.tick_params(axis='both', which='minor', labelsize=12)
답변
다른 대안
두 개의 플롯이 나란히 있으며 눈금 레이블을 개별적으로 조정하고 싶습니다.
위의 솔루션은 가까이 있었지만 나에게 적합하지 않았습니다. 이 matplotlib 페이지 에서 솔루션을 찾았습니다 .
ax.xaxis.set_tick_params(labelsize=20)
이것은 속임수를 쓰고 요점을 바로 잡았습니다. 내 유스 케이스의 경우 조정해야 할 오른쪽 그림이였습니다. 새 눈금 레이블을 생성 한 이후 왼쪽의 플롯에 대해 레이블 설정 과 동일한 프로세스에서 글꼴을 조정할 수있었습니다 .
즉
ax1.set_xticklabels(ax1_x, fontsize=15)
ax1.set_yticklabels(ax1_y, fontsize=15)
그래서 나는 올바른 음모에 사용했습니다.
ax2.xaxis.set_tick_params(labelsize=24)
ax2.yaxis.set_tick_params(labelsize=24)
미묘한 미묘함 … 알아요 …하지만 누군가에게 도움이되기를 바랍니다 🙂
규모 순서 레이블의 글꼴 크기를 조정하는 방법을 아는 경우 보너스 포인트.
답변
Matplotlib의 현재 버전에서 할 수 있습니다 axis.set_xticklabels(labels, fontsize='small')
.