Contourf生成色块而非渐变问题及griddata报错求助
问题分析与解决
核心错误
你代码里的contourf调用犯了关键错误:你传入了原始数据的坐标monet_lpa和monet_decpa,但contourf需要的是插值后的网格坐标xgrid和ygrid,这才是和interpolated_grid维度匹配的输入。
网格大小修改报错的原因
当你把网格大小改成300时,xgrid和ygrid会生成长度为300的数组,经meshgrid处理后得到300×300的网格,griddata生成的interpolated_grid也是300×300的二维数组。但你依然传入长度为145的原始monet_lpa作为x轴参数,自然会触发维度不匹配的TypeError——因为z轴数据(interpolated_grid)的列数是300,和x轴的145长度不对应。
修正后的代码
把contourf那一行修改为:
cax = ax1.contourf(xgrid, ygrid, interpolated_grid, levels=levels, cmap=colors, extend="both")
这样就能正确基于插值后的网格绘制渐变填充效果,修改网格大小(比如300)也不会再报错。
内容的提问来源于stack exchange,提问作者ngc1535
相关产品推荐
相关产品推荐

