matplotlib에서 X 축에 레이블에 시간 (분)을 사용하는 샘플

7601 단어 파이썬matplotlib

테스트 데이터


import pandas as pd 

tm=pd.date_range("2020/2/3 9:00" ,"2020/2/3 11:00" , freq="60min")

dt1=range(len(tm))
dt2=range(0,-len(tm),-1)

df=pd.DataFrame({"tm":tm , "dt1":dt1 , "dt2":dt2})

print(df.to_markdown()) 




tm
dt1
dt2


0
2020-02-03 09:00:00
0
0

1
2020-02-03 10:00:00
1
-1

2
2020-02-03 11:00:00
2
-2


X축을 공유하고 두 개의 그래프를 작성합니다. 그때 가로축은 1분 간격으로 축선을 쓰고 5분 간격으로 라벨을 쓴다.


import matplotlib.pyplot as plt
import matplotlib.dates as mdates

#sharex="col"でX軸を共通にする
fig ,ax = plt.subplots(2 , 1, sharex="col", figsize=(10 , 20))

ax[0].plot("tm" , "dt1" ,data=df)
ax[0].grid(True)

ax[1].plot("tm" , "dt2" ,data=df)
ax[1].grid(True)


#x軸の描画の範囲を指定。これを入れないと、時刻がうまくそろわない
ax[1].set_xlim(tm[0] , tm[-1])   


#5分おきにラベル
Minute1=mdates.MinuteLocator(range(60),5)   
ax[1].xaxis.set_major_locator(Minute1)

#1分おきに軸線
Minute2=mdates.MinuteLocator(range(60),1)   
ax[1].xaxis.set_minor_locator(Minute2)

#H:M のフォーマットでラベルを書く
Minute_fmt = mdates.DateFormatter('%H:%M')  
ax[1].xaxis.set_major_formatter(Minute_fmt)


#縦書きの指定
plt.setp(ax[1].get_xticklabels(), rotation=90, ha="right")

#表示
plt.show()

결과





참고



matplotlib로 x 축의 시간 정보 포맷
dates.MinuteLocator

좋은 웹페이지 즐겨찾기