在 python 中绘制等高线

Plotting contour in python

我有一个形状为 (15,2) 的 np 数组 当我对该数组的第一维和第二维进行网格划分并编写该数组的函数,然后使用等高线进行绘图时,输出为空白。我不明白怎么了。请指导我。

密码是:

M=[[12.647,4.2439],[13.744,8.9295],[13.93,9.191 ],[16.223,12.452 ],
   [16.475 , 12.784 ],
   [16.535 , 12.813 ],
   [16.774 , 13.377 ],
   [16.949 , 13.465 ],
   [17.295 , 13.494 ],
   [17.329 , 13.613 ],
   [18.183 , 14.683 ],
   [19.055 , 14.871 ],
   [19.098 , 15.487 ],
   [21.798 , 16.23  ],
   [22.241 , 16.411 ]]
x1,y1=np.meshgrid(M[:,0],M[:,1])
F=np.sqrt(x1**2 + y1**2)
plt.contour(x1,y1,F)

这里M是一个np数组(15,2)。 M的值有问题吗?

这是我在 运行

时得到的
import numpy as np
import matplotlib.pyplot as plt


M = np.array([[12.647, 4.2439],
              [13.744, 8.9295],
              [13.93, 9.191],
              [16.223, 12.452],
              [16.475, 12.784],
              [16.535, 12.813],
              [16.774, 13.377],
              [16.949, 13.465],
              [17.295, 13.494],
              [17.329, 13.613],
              [18.183, 14.683],
              [19.055, 14.871],
              [19.098, 15.487],
              [21.798, 16.23],
              [22.241, 16.411]])

x1, y1 = np.meshgrid(M[:, 0], M[:, 1])
f = np.sqrt(x1 ** 2 + y1 ** 2)
plt.contour(x1, y1, f)
plt.show()

这是你想要的吗?如果没有,请详细说明您希望看到的内容。