Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 29710aa

Browse files
committed
FIX: don't deprecate KDE
1 parent 838dc78 commit 29710aa

File tree

2 files changed

+0
-251
lines changed

2 files changed

+0
-251
lines changed

lib/matplotlib/mlab.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -846,7 +846,6 @@ def cohere(x, y, NFFT=256, Fs=2, detrend=detrend_none, window=window_hanning,
846846
return Cxy, f
847847

848848

849-
@_api.deprecated("3.6", alternative="scipy.stats.gaussian_kde")
850849
class GaussianKDE:
851850
"""
852851
Representation of a kernel-density estimate using Gaussian kernels.

lib/matplotlib/tests/test_axes.py

Lines changed: 0 additions & 250 deletions
Original file line numberDiff line numberDiff line change
@@ -134,25 +134,6 @@ def test_label_shift():
134134
assert ax.yaxis.get_label().get_horizontalalignment() == "center"
135135

136136

137-
@check_figures_equal(extensions=["png"])
138-
def test_acorr(fig_test, fig_ref):
139-
np.random.seed(19680801)
140-
Nx = 512
141-
x = np.random.normal(0, 1, Nx).cumsum()
142-
maxlags = Nx-1
143-
144-
ax_test = fig_test.subplots()
145-
ax_test.acorr(x, maxlags=maxlags)
146-
147-
ax_ref = fig_ref.subplots()
148-
# Normalized autocorrelation
149-
norm_auto_corr = np.correlate(x, x, mode="full")/np.dot(x, x)
150-
lags = np.arange(-maxlags, maxlags+1)
151-
norm_auto_corr = norm_auto_corr[Nx-1-maxlags:Nx+maxlags]
152-
ax_ref.vlines(lags, [0], norm_auto_corr)
153-
ax_ref.axhline(y=0, xmin=0, xmax=1)
154-
155-
156137
@check_figures_equal(extensions=["png"])
157138
def test_spy(fig_test, fig_ref):
158139
np.random.seed(19680801)
@@ -4623,237 +4604,6 @@ def test_subplot_key_hash():
46234604
assert ax.get_subplotspec().get_geometry() == (5, 1, 0, 0)
46244605

46254606

4626-
@image_comparison(
4627-
["specgram_freqs.png", "specgram_freqs_linear.png",
4628-
"specgram_noise.png", "specgram_noise_linear.png"],
4629-
remove_text=True, tol=0.07, style="default")
4630-
def test_specgram():
4631-
"""Test axes.specgram in default (psd) mode."""
4632-
4633-
# use former defaults to match existing baseline image
4634-
matplotlib.rcParams['image.interpolation'] = 'nearest'
4635-
4636-
n = 1000
4637-
Fs = 10.
4638-
4639-
fstims = [[Fs/4, Fs/5, Fs/11], [Fs/4.7, Fs/5.6, Fs/11.9]]
4640-
NFFT_freqs = int(10 * Fs / np.min(fstims))
4641-
x = np.arange(0, n, 1/Fs)
4642-
y_freqs = np.concatenate(
4643-
np.sin(2 * np.pi * np.multiply.outer(fstims, x)).sum(axis=1))
4644-
4645-
NFFT_noise = int(10 * Fs / 11)
4646-
np.random.seed(0)
4647-
y_noise = np.concatenate([np.random.standard_normal(n), np.random.rand(n)])
4648-
4649-
all_sides = ["default", "onesided", "twosided"]
4650-
for y, NFFT in [(y_freqs, NFFT_freqs), (y_noise, NFFT_noise)]:
4651-
noverlap = NFFT // 2
4652-
pad_to = int(2 ** np.ceil(np.log2(NFFT)))
4653-
for ax, sides in zip(plt.figure().subplots(3), all_sides):
4654-
ax.specgram(y, NFFT=NFFT, Fs=Fs, noverlap=noverlap,
4655-
pad_to=pad_to, sides=sides)
4656-
for ax, sides in zip(plt.figure().subplots(3), all_sides):
4657-
ax.specgram(y, NFFT=NFFT, Fs=Fs, noverlap=noverlap,
4658-
pad_to=pad_to, sides=sides,
4659-
scale="linear", norm=matplotlib.colors.LogNorm())
4660-
4661-
4662-
@image_comparison(
4663-
["specgram_magnitude_freqs.png", "specgram_magnitude_freqs_linear.png",
4664-
"specgram_magnitude_noise.png", "specgram_magnitude_noise_linear.png"],
4665-
remove_text=True, tol=0.07, style="default")
4666-
def test_specgram_magnitude():
4667-
"""Test axes.specgram in magnitude mode."""
4668-
4669-
# use former defaults to match existing baseline image
4670-
matplotlib.rcParams['image.interpolation'] = 'nearest'
4671-
4672-
n = 1000
4673-
Fs = 10.
4674-
4675-
fstims = [[Fs/4, Fs/5, Fs/11], [Fs/4.7, Fs/5.6, Fs/11.9]]
4676-
NFFT_freqs = int(100 * Fs / np.min(fstims))
4677-
x = np.arange(0, n, 1/Fs)
4678-
y = np.sin(2 * np.pi * np.multiply.outer(fstims, x)).sum(axis=1)
4679-
y[:, -1] = 1
4680-
y_freqs = np.hstack(y)
4681-
4682-
NFFT_noise = int(10 * Fs / 11)
4683-
np.random.seed(0)
4684-
y_noise = np.concatenate([np.random.standard_normal(n), np.random.rand(n)])
4685-
4686-
all_sides = ["default", "onesided", "twosided"]
4687-
for y, NFFT in [(y_freqs, NFFT_freqs), (y_noise, NFFT_noise)]:
4688-
noverlap = NFFT // 2
4689-
pad_to = int(2 ** np.ceil(np.log2(NFFT)))
4690-
for ax, sides in zip(plt.figure().subplots(3), all_sides):
4691-
ax.specgram(y, NFFT=NFFT, Fs=Fs, noverlap=noverlap,
4692-
pad_to=pad_to, sides=sides, mode="magnitude")
4693-
for ax, sides in zip(plt.figure().subplots(3), all_sides):
4694-
ax.specgram(y, NFFT=NFFT, Fs=Fs, noverlap=noverlap,
4695-
pad_to=pad_to, sides=sides, mode="magnitude",
4696-
scale="linear", norm=matplotlib.colors.LogNorm())
4697-
4698-
4699-
@image_comparison(
4700-
["specgram_angle_freqs.png", "specgram_phase_freqs.png",
4701-
"specgram_angle_noise.png", "specgram_phase_noise.png"],
4702-
remove_text=True, tol=0.07, style="default")
4703-
def test_specgram_angle():
4704-
"""Test axes.specgram in angle and phase modes."""
4705-
4706-
# use former defaults to match existing baseline image
4707-
matplotlib.rcParams['image.interpolation'] = 'nearest'
4708-
4709-
n = 1000
4710-
Fs = 10.
4711-
4712-
fstims = [[Fs/4, Fs/5, Fs/11], [Fs/4.7, Fs/5.6, Fs/11.9]]
4713-
NFFT_freqs = int(10 * Fs / np.min(fstims))
4714-
x = np.arange(0, n, 1/Fs)
4715-
y = np.sin(2 * np.pi * np.multiply.outer(fstims, x)).sum(axis=1)
4716-
y[:, -1] = 1
4717-
y_freqs = np.hstack(y)
4718-
4719-
NFFT_noise = int(10 * Fs / 11)
4720-
np.random.seed(0)
4721-
y_noise = np.concatenate([np.random.standard_normal(n), np.random.rand(n)])
4722-
4723-
all_sides = ["default", "onesided", "twosided"]
4724-
for y, NFFT in [(y_freqs, NFFT_freqs), (y_noise, NFFT_noise)]:
4725-
noverlap = NFFT // 2
4726-
pad_to = int(2 ** np.ceil(np.log2(NFFT)))
4727-
for mode in ["angle", "phase"]:
4728-
for ax, sides in zip(plt.figure().subplots(3), all_sides):
4729-
ax.specgram(y, NFFT=NFFT, Fs=Fs, noverlap=noverlap,
4730-
pad_to=pad_to, sides=sides, mode=mode)
4731-
with pytest.raises(ValueError):
4732-
ax.specgram(y, NFFT=NFFT, Fs=Fs, noverlap=noverlap,
4733-
pad_to=pad_to, sides=sides, mode=mode,
4734-
scale="dB")
4735-
4736-
4737-
def test_specgram_fs_none():
4738-
"""Test axes.specgram when Fs is None, should not throw error."""
4739-
spec, freqs, t, im = plt.specgram(np.ones(300), Fs=None, scale='linear')
4740-
xmin, xmax, freq0, freq1 = im.get_extent()
4741-
assert xmin == 32 and xmax == 96
4742-
4743-
4744-
@check_figures_equal(extensions=["png"])
4745-
def test_specgram_origin_rcparam(fig_test, fig_ref):
4746-
"""Test specgram ignores image.origin rcParam and uses origin 'upper'."""
4747-
t = np.arange(500)
4748-
signal = np.sin(t)
4749-
4750-
plt.rcParams["image.origin"] = 'upper'
4751-
4752-
# Reference: First graph using default origin in imshow (upper),
4753-
fig_ref.subplots().specgram(signal)
4754-
4755-
# Try to overwrite the setting trying to flip the specgram
4756-
plt.rcParams["image.origin"] = 'lower'
4757-
4758-
# Test: origin='lower' should be ignored
4759-
fig_test.subplots().specgram(signal)
4760-
4761-
4762-
def test_specgram_origin_kwarg():
4763-
"""Ensure passing origin as a kwarg raises a TypeError."""
4764-
t = np.arange(500)
4765-
signal = np.sin(t)
4766-
4767-
with pytest.raises(TypeError):
4768-
plt.specgram(signal, origin='lower')
4769-
4770-
4771-
@image_comparison(
4772-
["psd_freqs.png", "csd_freqs.png", "psd_noise.png", "csd_noise.png"],
4773-
remove_text=True, tol=0.002)
4774-
def test_psd_csd():
4775-
n = 10000
4776-
Fs = 100.
4777-
4778-
fstims = [[Fs/4, Fs/5, Fs/11], [Fs/4.7, Fs/5.6, Fs/11.9]]
4779-
NFFT_freqs = int(1000 * Fs / np.min(fstims))
4780-
x = np.arange(0, n, 1/Fs)
4781-
ys_freqs = np.sin(2 * np.pi * np.multiply.outer(fstims, x)).sum(axis=1)
4782-
4783-
NFFT_noise = int(1000 * Fs / 11)
4784-
np.random.seed(0)
4785-
ys_noise = [np.random.standard_normal(n), np.random.rand(n)]
4786-
4787-
all_kwargs = [{"sides": "default"},
4788-
{"sides": "onesided", "return_line": False},
4789-
{"sides": "twosided", "return_line": True}]
4790-
for ys, NFFT in [(ys_freqs, NFFT_freqs), (ys_noise, NFFT_noise)]:
4791-
noverlap = NFFT // 2
4792-
pad_to = int(2 ** np.ceil(np.log2(NFFT)))
4793-
for ax, kwargs in zip(plt.figure().subplots(3), all_kwargs):
4794-
ret = ax.psd(np.concatenate(ys), NFFT=NFFT, Fs=Fs,
4795-
noverlap=noverlap, pad_to=pad_to, **kwargs)
4796-
assert len(ret) == 2 + kwargs.get("return_line", False)
4797-
ax.set(xlabel="", ylabel="")
4798-
for ax, kwargs in zip(plt.figure().subplots(3), all_kwargs):
4799-
ret = ax.csd(*ys, NFFT=NFFT, Fs=Fs,
4800-
noverlap=noverlap, pad_to=pad_to, **kwargs)
4801-
assert len(ret) == 2 + kwargs.get("return_line", False)
4802-
ax.set(xlabel="", ylabel="")
4803-
4804-
4805-
@image_comparison(
4806-
["magnitude_spectrum_freqs_linear.png",
4807-
"magnitude_spectrum_freqs_dB.png",
4808-
"angle_spectrum_freqs.png",
4809-
"phase_spectrum_freqs.png",
4810-
"magnitude_spectrum_noise_linear.png",
4811-
"magnitude_spectrum_noise_dB.png",
4812-
"angle_spectrum_noise.png",
4813-
"phase_spectrum_noise.png"],
4814-
remove_text=True)
4815-
def test_spectrum():
4816-
n = 10000
4817-
Fs = 100.
4818-
4819-
fstims1 = [Fs/4, Fs/5, Fs/11]
4820-
NFFT = int(1000 * Fs / min(fstims1))
4821-
pad_to = int(2 ** np.ceil(np.log2(NFFT)))
4822-
4823-
x = np.arange(0, n, 1/Fs)
4824-
y_freqs = ((np.sin(2 * np.pi * np.outer(x, fstims1)) * 10**np.arange(3))
4825-
.sum(axis=1))
4826-
np.random.seed(0)
4827-
y_noise = np.hstack([np.random.standard_normal(n), np.random.rand(n)]) - .5
4828-
4829-
all_sides = ["default", "onesided", "twosided"]
4830-
kwargs = {"Fs": Fs, "pad_to": pad_to}
4831-
for y in [y_freqs, y_noise]:
4832-
for ax, sides in zip(plt.figure().subplots(3), all_sides):
4833-
spec, freqs, line = ax.magnitude_spectrum(y, sides=sides, **kwargs)
4834-
ax.set(xlabel="", ylabel="")
4835-
for ax, sides in zip(plt.figure().subplots(3), all_sides):
4836-
spec, freqs, line = ax.magnitude_spectrum(y, sides=sides, **kwargs,
4837-
scale="dB")
4838-
ax.set(xlabel="", ylabel="")
4839-
for ax, sides in zip(plt.figure().subplots(3), all_sides):
4840-
spec, freqs, line = ax.angle_spectrum(y, sides=sides, **kwargs)
4841-
ax.set(xlabel="", ylabel="")
4842-
for ax, sides in zip(plt.figure().subplots(3), all_sides):
4843-
spec, freqs, line = ax.phase_spectrum(y, sides=sides, **kwargs)
4844-
ax.set(xlabel="", ylabel="")
4845-
4846-
4847-
def test_psd_csd_edge_cases():
4848-
# Inverted yaxis or fully zero inputs used to throw exceptions.
4849-
axs = plt.figure().subplots(2)
4850-
for ax in axs:
4851-
ax.yaxis.set(inverted=True)
4852-
with np.errstate(divide="ignore"):
4853-
axs[0].psd(np.zeros(5))
4854-
axs[1].csd(np.zeros(5), np.zeros(5))
4855-
4856-
48574607
@check_figures_equal(extensions=['png'])
48584608
def test_twin_remove(fig_test, fig_ref):
48594609
ax_test = fig_test.add_subplot()

0 commit comments

Comments
 (0)