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

Python Matplotlib에서 하나의 동일한 플롯에 두 개의 다른 간격 시계열을 플롯하려면 어떻게 해야 합니까?

<시간/>

Matplotlib를 사용하여 하나의 동일한 플롯에 두 개의 다른 간격 시계열을 표시하려면 다음 단계를 수행할 수 있습니다.

단계

  • Figure 크기를 설정하고 서브플롯 사이와 주변의 패딩을 조정합니다.

  • x1, y1 생성 및 x2y2 데이터 포인트.

  • Figure와 서브플롯 세트를 생성합니다.

  • 날짜가 포함된 데이터를 플로팅합니다. (x1, y1) 포함 및 (x2, y2) 데이터 포인트.

  • X축 ticklabels의 주요 포맷터 설정 .

  • xtick 회전 tick_params()를 사용하여 45도 레이블 지정 방법.

  • 그림을 표시하려면 Show()를 사용하세요. 방법.

예시

import matplotlib.pyplot as plt
from matplotlib.dates import date2num, DateFormatter
import datetime as dt

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

x1 = [date2num(dt.datetime(2021, 1, 15, 1, 1, 1)), date2num(dt.datetime(2021, 1, 15, 9, 1, 1))]

y1 = [6, 2]

x2 = [ date2num(dt.datetime(2021, 1, 15, 2, 1, 1)),
    date2num(dt.datetime(2021, 1, 15, 4, 1, 1)),
    date2num(dt.datetime(2021, 1, 15, 6, 1, 1)),
    date2num(dt.datetime(2021, 1, 15, 8, 1, 1)),
    date2num(dt.datetime(2021, 1, 15, 10, 1, 1))
]

y2 = [3, 6, 5, 4, 1]

fig, ax = plt.subplots()

ax.plot_date(x1, y1, 'o--')
ax.plot_date(x2, y2, 'o:')

ax.xaxis.set_major_formatter(DateFormatter('%H:%M:%S'))
ax.tick_params(rotation=45)

plt.show()

출력

다음 출력을 생성합니다 -

Python Matplotlib에서 하나의 동일한 플롯에 두 개의 다른 간격 시계열을 플롯하려면 어떻게 해야 합니까?