我想在下面所示的数据之间插入值(梯度):
的数据
然而,我得到的结果是这样的:
的
fig, (ax1) = plt.subplots(figsize=(12,6))
colors = plt.cm.get_cmap('autumn_r')
ax1.set_facecolor("gray")
levels,steps = np.linspace(min(monet_mag),max(monet_mag),graphlevels,retstep=True)
ticks = np.linspace(max(monet_mag),min(monet_mag),10)
xgrid = np.linspace(min(monet_lpa), max(monet_lpa),145)
ygrid = np.linspace(min(monet_decpa), max(monet_decpa),145)
xgrid, ygrid = np.meshgrid(xgrid, ygrid,indexing='xy')
interpolated_grid = griddata((monet_lpa,monet_decpa),monet_mag, (xgrid, ygrid), method='linear')
cax = ax1.contourf(monet_lpa, monet_decpa, interpolated_grid, levels=levels, cmap=colors,extend="both")
字符串
请注意,在griddata的gridsize的位置,我已经明确地放了“145”。这是所有列表的维度。如果我改变gridsize(到300),我得到一个错误:
TypeError(f"Length of x ({nx}) must match number of "
TypeError: Length of x (145) must match number of columns in z (300).
型
但是改变网格大小与“z”轴(monet_mag
)没有任何关系。
请让我知道如果有什么明显的我做错了。
1条答案
按热度按时间esyap4oy1#
interpolated_grid
是z值的[145,145]数组。使用contourf绘制这些z值时,需要传递这些插值的x和y坐标,而实际上是传递输入数据的x和y坐标。您希望传递网格的x和y坐标(即:xgrid
和ygrid
)。这也会导致更改网格大小时出现错误。
所以呢
字符串
应该工作,并允许您设置网格大小为任何您想要的。
我相信contourf也可以处理插值-所以
型
也会给你一个合理的结果。