plt.stem
dr aws точек с вертикальными линиями, соединенными через базовую линию, как показано на втором графике. Чтобы нарисовать точки и соединенные отрезки, есть plt.plot
со многими опциями.
Обратите внимание, что обычно pyplot
импортируется как plt
. Таким образом, люди смогут быстро увидеть, где происходит связанный с графикой код, что облегчает понимание и поддержку.
Аналогично, numpy
импортируется как np
. Функции Numpy могут работать с полными массивами, аналогично работе с отдельными переменными ( «широковещание» ), что прекрасно работает только тогда, когда все функции и массивы используют numpy. Префикс np
помогает визуально проверить это.
Вот пример кода со стандартным способом импорта pyplot и numpy. И с вызовом plt.plot
, чтобы получить сюжет, похожий на нужный. Переменная в основном коде переименована в b
, чтобы упростить отслеживание вызова функции impz
.
import matplotlib.pyplot as plt
import numpy as np
import scipy.signal as signal
# Plot step and impulse response
def impz(b, a=1):
l = len(b)
impulse = np.repeat(0., l)
impulse[0] = 1.
x = np.arange(0, l)
response = signal.lfilter(b, a, impulse)
plt.subplot(211)
# plt.stem(x, response)
plt.plot(x, response, color='blueviolet', marker='o', markerfacecolor='none', markeredgecolor='dodgerblue')
plt.ylabel('Amplitude')
plt.xlabel('Index')
plt.title('Impulse response')
n = 21
b = signal.firwin(n, cutoff=0.3, window="hamming")
# Impulse and step response
plt.figure(2)
impz(b)
plt.show()