Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Matplotlib의 눈금 사이에 x- 눈금 레이블을 중앙에 배치

<시간/>

두 눈금 사이에 레이블을 배치하려면 다음 단계를 수행할 수 있습니다.

  • 샘플 데이터 로드, r.
  • 배열의 복사본을 만들고 지정된 유형으로 캐스트합니다.
  • subplots()를 사용하여 그림과 서브플롯 세트 생성 방법.
  • 플롯 날짜 및 r 샘플 데이터.
  • set_major_locator()를 사용하여 메이저/마이너 티커의 로케이터 설정 및 set_minor_locator() 방법.
  • set_major_locator()를 사용하여 주/부 포맷터의 로케이터 설정 및 set_minor_formatter() 방법.
  • 이제 눈금을 중앙에 배치합니다.
  • 그림을 표시하려면 show()를 사용하세요. 방법.

예시

import numpy as np
import matplotlib.cbook as cbook
import matplotlib.dates as dates
import matplotlib.ticker as ticker
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
with cbook.get_sample_data('aapl.npz') as fh:
   r = np.load(fh)['price_data'].view(np.recarray)
r = r[-250:]
date = r.date.astype('O')
fig, ax = plt.subplots()
ax.plot(date, r.adj_close)
ax.xaxis.set_major_locator(dates.MonthLocator())
ax.xaxis.set_minor_locator(dates.MonthLocator(bymonthday=15))
ax.xaxis.set_major_formatter(ticker.NullFormatter())
ax.xaxis.set_minor_formatter(dates.DateFormatter('%b'))
for tick in ax.xaxis.get_minor_ticks():
   tick.tick1line.set_markersize(0)
   tick.tick2line.set_markersize(0)
   tick.label1.set_horizontalalignment('center')
imid = len(r) // 2
ax.set_xlabel(str(date[imid].year))
plt.show()

출력

Matplotlib의 눈금 사이에 x- 눈금 레이블을 중앙에 배치