단일 imshow
플롯을 플롯하면 사용할 수 있습니다
fig, ax = plt.subplots()
ax.imshow(data)
plt.xticks( [4, 14, 24], [5, 15, 25] )
내 xtick 레이블을 대체합니다.
이제 저는 다음을 imshow
사용하여 12 개의 플롯을 플로팅하고 있습니다.
f, axarr = plt.subplots(4, 3)
axarr[i, j].imshow(data)
이 서브 플롯 중 하나에 대한 xtick를 어떻게 변경할 수 있습니까? 을 사용하여 서브 플롯의 축에만 액세스 할 수 있습니다 axarr[i, j]
. plt
하나의 특정 서브 플롯에만 액세스하려면 어떻게 해야합니까?
답변
두 가지 방법이 있습니다.
- 서브 플롯 객체 (예 :
ax.set_xticks
및ax.set_xticklabels
) 의 axes 메서드를 사용 하거나 plt.sca
플롯 상태 머신 (예 :plt
인터페이스) 의 현재 축을 설정하는 데 사용 합니다 .
예를 들어 (이것은 또한 setp
모든 서브 플롯의 속성을 변경하는 데 사용 하는 방법을 보여줍니다 ) :
import matplotlib.pyplot as plt
fig, axes = plt.subplots(nrows=3, ncols=4)
# Set the ticks and ticklabels for all axes
plt.setp(axes, xticks=[0.1, 0.5, 0.9], xticklabels=['a', 'b', 'c'],
yticks=[1, 2, 3])
# Use the pyplot interface to change just one subplot...
plt.sca(axes[1, 1])
plt.xticks(range(3), ['A', 'Big', 'Cat'], color='red')
fig.tight_layout()
plt.show()
답변
다음 솔루션이 제안 된 matplotlib 저장소 의 (매우) 최근 답변 을 참조하십시오 .
-
xticklabels를 설정하려면 :
ax.set_xticks([1,4,5]) ax.set_xticklabels([1,4,5], fontsize=12)
-
기본값과 위치를 사용하여 xticklabels의 글꼴 크기 만 늘리려면 (개인적으로 자주 필요하고 매우 편리하다고 생각하는) :
ax.tick_params(axis="x", labelsize=12)
-
한 번에 모두 수행하려면 :
plt.setp(ax.get_xticklabels(), fontsize=12, fontweight="bold", horizontalalignment="left")`