如何从matplotlib中的轮廓中获取坐标?
要从matplotlib中的轮廓中获取坐标,可以按照以下步骤进行-
- 设置图形大小并调整子图之间的填充和周围的填充。
- 创建包含数据点的 x,y和m 的列表。
- 使用plt.contour( x,y,m )创建带有x,y和m数据点的轮廓图。
- 获取轮廓集实例。
- 获取集合的路径,并打印轮廓的顶点或坐标。
- 使用 show() 方法显示图像。
示例
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
x = [1, 2, 3, 4]
y = [1, 2, 3, 4]
m = [[15, 14, 13, 12], [14, 12, 10, 8], [13, 10, 7, 4], [12, 8, 4, 0]]
cs = plt.contour(x, y, m)
for item in cs.collections:
for i in item.get_paths():
v = i.vertices
x = v[:, 0]
y = v[:, 1]
print(x, y)
plt.show()
输出
它将生成以下输出
此外,它将在终端上打印轮廓的坐标
[4.] [4.]
[4. 3.5] [3.5 4. ]
[4. 3.] [3. 4.]
[4. 3.33333333 3. 2.5 ] [2.5 3. 3.33333333 4. ]
[4. 3. 2.66666667 2. ] [2. 2.66666667 3. 4. ]
[4. 3. 2. 1.5] [1.5 2. 3. 4. ]
[4. 3. 2. 1.33333333 1. ] [1. 1.33333333 2. 3. 4. ]
[2. 1.] [1. 2.]