如何将类似网格的matplotlib图转换为像表面一样的平滑渐变?

时间:2018-02-06 05:39:35

标签: python matplotlib plot

我正在尝试使用imshow中的matplotlib.pyplot函数绘制2D numpy数组(它是使用自组织映射的代码簿生成的U矩阵的绘图)。

该图由以下行生成:

matplotlib.pyplot.imshow(umat, cmap=plt.cm.get_cmap('RdYlBu_r'), alpha=1)

这里,umat是我想要绘制的2D numpy数组。这是生成的图:

它将每个节点(点)显示为不同的方块。

我想生成这样的东西

显示光滑的表面,但我无法找到方法。有人可以说明它是如何完成的吗?

1 个答案:

答案 0 :(得分:2)

如果您想使用imshow,可以尝试不同的插值方法,请参阅https://matplotlib.org/examples/images_contours_and_fields/interpolation_methods.html

实施例:  ax.imshow(grid, interpolation=interp_method, cmap='viridis') 其中interp_method

之一
methods = [None, 'none', 'nearest', 'bilinear', 'bicubic', 'spline16', 'spline36', 'hanning', 'hamming', 'hermite', 'kaiser', 'quadric', 'catrom', 'gaussian', 'bessel', 'mitchell', 'sinc', 'lanczos']