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

พล็อตความหนาแน่นสเปกตรัมกำลังใน Matplotlib


ในการพล็อต Power Spectral Density ใน Matplotlib เราสามารถทำตามขั้นตอนต่อไปนี้ -

  • กำหนดขนาดรูปและปรับช่องว่างภายในระหว่างและรอบๆ แผนผังย่อย
  • เริ่มต้นตัวแปร dt .
  • สร้าง t, nse , r, cnse, s, และ จุดข้อมูลโดยใช้ numpy
  • สร้างร่างและชุดแผนย่อย
  • พล็อต t และ s ข้อมูลโดยใช้ plot() วิธีการ
  • พล็อตความหนาแน่นของสเปกตรัมกำลัง
  • หากต้องการแสดงรูป ให้ใช้ show() วิธีการ

ตัวอย่าง

import matplotlib.pyplot as plt
import numpy as np

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

dt = 0.01
t = np.arange(0, 10, dt)
nse = np.random.randn(len(t))
r = np.exp(-t / 0.05)
cnse = np.convolve(nse, r) * dt
cnse = cnse[:len(t)]
s = 0.1 * np.sin(2 * np.pi * t) + cnse

fig, (ax0, ax1) = plt.subplots(2, 1)
ax0.plot(t, s)
ax1.psd(s, 512, 1 / dt)

plt.show()

ผลลัพธ์

พล็อตความหนาแน่นสเปกตรัมกำลังใน Matplotlib