-
-
Notifications
You must be signed in to change notification settings - Fork 8k
Closed
Labels
PerformanceRelease criticalFor bugs that make the library unusable (segfaults, incorrect plots, etc) and major regressions.For bugs that make the library unusable (segfaults, incorrect plots, etc) and major regressions.status: confirmed bugtopic: transforms and scales
Milestone
Description
matplotlib seems to leak memory when I switch to log scale on the Y axis, for the functions pcolorfast
, pcolormesh
, imshow
and specgram
Please consider the following spectrogram animation (sorry for the extra dependencies to scipy
)
from scipy.signal.spectral import spectrogram
from scipy.signal.waveforms import chirp
import matplotlib.animation as animation
import matplotlib.pyplot as plt
import numpy as np
fs = 8000 # sampling rate
t = np.arange(0, 5.0, 1/fs) # 5 seconds of time
fig, axes = plt.subplots(nrows=1)
def signal(t): # generates a "chirp" signal
return chirp(t = t, f0 = 100.0, f1 = 3000.0, t1 = 10.0)
def spect(x): # computes spectrogram
freq, time, Sxx = spectrogram(x, fs = fs, nfft = 1024, noverlap = 512, nperseg = 1024)
Z = 10 * np.log10(Sxx)
return freq, time, Z
y = signal(t)
freq, time, Z = spect(y)
im = axes.pcolorfast(time, freq, Z)
axes.set_xlabel('t [s]')
axes.set_ylabel('f [Hz]')
axes.set_yscale('log') # <-- exposes the leak
axes.set_ylim(0, fs/2)
def animate(i):
y = signal(t + i/30.0) # sliding temporal window
freq, time, Z = spect(y)
im.set_data(Z)
return [ im ]
ani = animation.FuncAnimation(fig, animate, np.arange(1, 200),
interval=0, blit=True)
plt.show()
Everything stays stable if I stick to linear scale on the Y axis, commenting out the line
axes.set_yscale('log')
I can reproduce it with matplotlib 3.1.1
(via pip
) and previous versions (tested with 3.0.2
from system-wide Debian testing package). Also I am using Qt5Agg
backend and python 3.7.5rc1
Metadata
Metadata
Assignees
Labels
PerformanceRelease criticalFor bugs that make the library unusable (segfaults, incorrect plots, etc) and major regressions.For bugs that make the library unusable (segfaults, incorrect plots, etc) and major regressions.status: confirmed bugtopic: transforms and scales