Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การพล็อต Time Series สองชุดที่มีช่วงเวลาต่างกันบนกราฟเดียวใน Matplotlib

ขั้นตอนการทำงาน

  • กำหนดขนาดรูปภาพและปรับระยะห่างรอบๆ subplots

  • สร้างข้อมูล x1, y1 และ x2, y2

  • สร้าง Figure และชุด Subplots

  • พล็อตข้อมูลที่มีวันที่ ด้วย (x1, y1) และ (x2, y2)

  • ตั้งค่า Major Formatter สำหรับป้ายแกน X

  • หมุนป้าย xtick 45 องศาด้วย tick_params()

  • แสดงรูปภาพด้วยเมธอด 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()

ผลลัพธ์

กราฟเดียวแสดง Time Series สองชุดข้อมูลที่มีจุดเวลาต่างกัน ชุดแรก 2 จุด (เส้นประ) ชุดที่สอง 5 จุด (เส้นจุด) แกน X แสดงเวลาในรูปแบบ ชั่วโมง:นาที:วินาที