Когда я пытаюсь понять разницу между imshow
и pcolormesh
, я сталкиваюсь с этой проблемой, которую не могу понять, почему.
Например, у меня есть синусоида с частотой 10 кГц.
import numpy as np
import matplotlib.pyplot as plt
from scipy import fft
f = 10000 # Frequency, in cycles per second, or Hertz
fs = 44100 # Sampling rate, or number of measurements per second
t = np.linspace(0, 5, 5 * fs, endpoint=False)
X = np.sin(f * 2 * np.pi * t)
Применение fft
к этому сигналу дает спектрограмму Xs
window_size = 2048 # 2048-sample fourier windows
stride = 512 # 512 samples between windows
wps = fs/float(512) # ~86 windows/second
Xs = np.empty([int(2*wps),2048])
for i in range(Xs.shape[0]):
Xs[i] = np.abs(fft(X[i*stride:i*stride+window_size]))
Теперь я хотел бы построить спектрограмму Xs
как с imshow
, так и с pcolormesh
.
Имшоу
fig = plt.figure(figsize=(20,7))
plt.imshow(Xs.T,aspect='auto',cmap='seismic')
plt.gca().invert_yaxis()
plt.colorbar()
цветная сетка
fig = plt.figure(figsize=(20,7))
plt.pcolormesh(Xs.T,cmap='seismic')
plt.colorbar()
Почему они разные?
imshow
создаетAxesImage
, аpcolormesh
создаетQuadMesh
, который представляет собой набор патчей. - person ImportanceOfBeingErnest   schedule 28.05.2019Xs
имеет размерность(1000,1024)
, это пиксели изображения или физические пиксели? - person Raven Cheuk   schedule 28.05.2019