matplotlib 中不规则数据网格的 2D 曲面图
我正在尝试在一个二维表面图上绘制一些数据。这些数据表示一个T形样本上属性的变化。不过,我现在使用的方法(文档中的标准方法)是在整个方形网格上进行插值,这样就超出了T形部分的范围。
我想把插值限制在T形部分内部。
我猜这可以通过定义一个T形网格(或者你想要插值的任何形状)来实现,这样理解对吗?如果是的话,我该如何创建一个T形网格来进行插值呢?我在想把两个linspace
数组拼接在一起以形成T形,但到现在为止一直失败 =/
非常感谢!
编辑 1)
普通网格:
xxxxxxxxx
xxxxxxxxx
xxxxxxxxx
xxxxxxxxx
我想要插值的区域形状:
xxxxxxxxx
xxxxxxxxx
000xxx000
000xxx000
其中x
是要进行插值的数据点,而0
表示不应该进行插值的空白区域。
1 个回答
1
你可以用 np.nan
来填充你想要显示的数组:
>>> import matplotlib.pyplot as plt
>>> a = np.random.rand(100, 100)
>>> plt.imshow(a)
<matplotlib.image.AxesImage object at 0x03EEB030>
>>> plt.show()
现在:
>>> a[50:, :25] = np.nan
>>> a[50:, 75:] = np.nan
>>> plt.imshow(a)
<matplotlib.image.AxesImage object at 0x040C81B0>
>>> plt.show()