我正在尝试创建一个绘制水平面上温度梯度的图表。我能够得到颜色,但它没有按照我需要的方式进行插值。这个问题对创建图表很有帮助。看起来当生成图表时,点的权重不是相等的。这个链接是当前图表的样子。它应该像色条一样,因为顶部两个点是23.7,底部两个点是23.4。我使用的代码是:
xi, yi = np.linspace(xm, xM, 500), np.linspace(ym, yM, 500)
xi, yi = np.meshgrid(xi, yi)
xo=[0, 0, 2, 2]
yo=[0, 2, 0, 2]
ao=[23.4, 23.7, 23.4, 23.7]
rbf = scipy.interpolate.Rbf(xo, yo, ao, function='linear')
ai = rbf(xi, yi)
plt.xlabel('X')
plt.ylabel('Y')
plt.imshow(ai, vmin=am, vmax=aM, origin='lower', extent=[xm, xM, ym, yM])
plt.scatter(xo, yo, c=ao)
plt.colorbar()
plt.show()
ao
进行简单的线性重新缩放,然后对结果进行反向操作来解决问题。 - Joe Kingtonai.min()
和ai.max()
。这很重要。或者你可以直接跳过它们,Matplotlib 会自动修复。 - user1767344