问题: Matplotlib期望输入2D数组的轮廓应当是什么顺序?
详细说明: Matplotlib轮廓文档表明该例程的调用为
x_axis = np.linspace(10,100,n_x)
y_axis = np.linspace(10,100,n_y)
matplotlib.pyplot.contour(x_axis, y_axis, scalar_field)
scalar_field必须是一个二维数组。例如,可以通过以下方式生成scalar_field:
scalar_field = np.array( [(x*y) for x in x_axis for y in y_axis])
scalar_field = scalar_field.reshape(n_x, n_y)
如果在等高线函数中给出了 scalar_field 参数,
plt.contour(x_axis, y_axis,scalar_field) #incorrect
图表的方向不正确(旋转)。要恢复正确的方向,必须对标量场进行转置:
plt.contour(x_axis, y_axis,scalar_field.transpose()) #correct
那么,轮廓期望标量场的顺序是什么?
'xy'
索引时,你可以想象自己从上方查看矩阵,其中 x 坐标从左到右,而 y 坐标从下到上。有时这并不是你想要的,因此你可以选择使用'ij'
索引,其中第一个索引可以被视为行,第二个索引可以被视为列... - Saullo G. P. Castro