将过滤器应用于plt.imshow时,轴缩放问题

时间:2018-05-16 02:37:11

标签: python matplotlib gaussian imshow histogram2d

我正在尝试将高斯滤波器应用于2dhistogram,但是当我使用输入数据时,y-scale不适合。

如果我运行一个示例数据集,它可以正常工作。这是使用随机数据的示例。

import matplotlib.pyplot as plt
import random
import numpy as np

x = random.sample(range(80), 10)
y = random.sample(range(80), 10)

fig, ax = plt.subplots()
plt.scatter(x,y)
z,x,y,p = plt.hist2d(x,y, bins = 40, range = np.array([(0, 80), (0, 80)]))
plt.imshow(z.T, interpolation = 'gaussian', origin = 'lower', cmap = 'jet', extent = [0,80,0,80])

输出:enter image description here

然而,当我尝试从输入数据生成相同的图时,它不起作用。见下文。

x = [29160, 30420, 30840, 31680, 31920, 32040, 33000, 33300, 33480, 34200]
y = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

fig, ax = plt.subplots()
plt.scatter(x,y)
z,x,y,p = plt.hist2d(x,y, bins = 40, range = np.array([(29000, 35000), (0, 10)]))
plt.imshow(z.T, interpolation = 'gaussian', origin = 'lower', cmap = 'jet', extent = [29000,35000,0,10])

enter image description here

1 个答案:

答案 0 :(得分:0)

查看文档。 https://matplotlib.org/api/_as_gen/matplotlib.pyplot.imshow.html

aspect='auto'函数中使用plt.imshow()和合适的插值。由于图像方面非常歪斜,因此您需要将其重新调整为轴大小。