gpt4 book ai didi

python - 识别并计算用户定义段内的点

转载 作者:行者123 更新时间:2023-12-01 05:16:48 24 4
gpt4 key购买 nike

我正在尝试识别和计算用户定义的“楔形”选择内的数据点。每个数据点都有自己的 ID 号,并从 CSV 目录文件加载,而“楔形”只是在绘图上绘制的一系列线条。

下面是一个绘图示例:

import matplotlib.pyplot as plt

x = ID['x']
y = ID['y']

plt.figure()
plt.scatter(x, y)
plt.plot([-1, -1, 2, 2, ], [4, 1, -2, 4], color='r', linewidth=1, linestyle='--')
plt.xlim(-4,4)
plt.ylim(-4,4)
plt.show()

示例图:http://i.imgur.com/UENwbks.png

我正在寻找两个输出

1) “楔形”内的所有 ID(数据点)的列表

2)所有ID(数据点)的计数,一旦实现上述目标,这是一个非常简单的任务!

我最初的想法是这样的:

ID['x'] >= -1 and ID['x'] <= 2 and ???

在哪里???是楔形上方的面积(也许是线性方程?)。

感谢您的帮助。

最佳答案

您可以定义一个路径并使用它的 contains_points方法:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.path as mpath

x, y = np.random.random((2, 100))*8 - 4
points = np.column_stack([x, y])
verts = np.array([[-1, -1, 2, 2, ], [4, 1, -2, 4]]).T
path = mpath.Path(verts)
points_inside = points[path.contains_points(points)]

plt.figure()
plt.scatter(x, y)
plt.plot([-1, -1, 2, 2, ], [4, 1, -2, 4], color='r', linewidth=1, linestyle='--')
plt.scatter(points_inside[:,0], points_inside[:,1], c='r', s=50)
plt.xlim(-4,4)
plt.ylim(-4,4)
plt.show()

enter image description here

关于python - 识别并计算用户定义段内的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23030841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com