我在scipy中使用griddata函数来插入3维和4维数据.它的作用就像一个冠军,除了它返回一堆NaN,因为我需要的一些点超出了输入数据的范围.鉴于Nd数据仅适用于"线性"模式插值,因此使用griddata进行外推而不是仅仅返回NaN应该很容易.有没有人这样做或找到了解决方法?澄清一下:我有非结构化数据,所以我不能使用任何需要常规网格的函数.谢谢!亚历克斯
我有一个大数据集,在分布上是对数的。我想做一个热图,所以我做了一个 2D 直方图并将其传递给 implot。因为数据是对数的,所以我将数据的对数传递给直方图。但是,当我绘制绘图时,我希望恢复轴(即 10^hist bin 值)和对数轴。如果我将轴设置为 log 样式,则图像看起来全部倾斜。当我将数据传递给直方图时,数据已经“记录”了,所以我不希望图像受到影响,只是轴受到影响。所以,在下面的例子中,我想要左边的图像和右边的轴。
我想我可以用一个假的叠加轴来做到这一点,但如果有更好的方法,我不喜欢做那种事情......
import numpy as np
import matplotlib.pyplot as plt
x=10**np.random.random(10000)*5
y=10**np.random.random(10000)*5
samps, xedges, yedges = np.histogram2d(np.log10(y), np.log10(x), bins=50)
ax = plt.subplot(121)
plt.imshow(samps, extent=[0,5,0,5])
plt.xlabel('Log10 X')
plt.ylabel('Log10 Y')
ax = plt.subplot(122)
plt.imshow(samps, extent=[10**0,10**5,10**0,10**5])
plt.xlabel('X')
plt.ylabel('Y')
plt.xscale('log')
plt.yscale('log')
plt.show()
Run Code Online (Sandbox Code Playgroud)