【发布时间】:2020-01-13 05:35:42
【问题描述】:
我正在从事基于 Python 的数据分析。我有一些 x-y 数据点和一些椭圆,我想确定点是否在任何椭圆内。我一直这样做的方式很有效,但它很笨拙。当我考虑将我的软件分发给其他人时,我发现自己想要一种更简洁的方式。
现在,我正在使用 matplotlib.patches.Ellipse 对象。 Matplotlib Ellipses 有一个有用的方法叫做contains_point()。您可以通过调用 Axes.transData.transform() 在 Matplotlib Axes 对象上处理数据坐标。
问题是我必须创建一个 Figure 和一个 Axes 对象来保存椭圆。当我的程序运行时,会渲染一个烦人的 Matplotlib Figure 对象,显示椭圆,我实际上不需要看到。我尝试了几种方法来抑制此输出。我已经使用Axes.clear() 成功地从轴中删除了椭圆,从而产生了一个空图。但我无法让 Matplolib 的 pyplot.close(fig_number) 在调用 pyplot.show() 之前删除图形本身。
感谢任何建议,谢谢!
【问题讨论】:
-
椭圆是符号定义的还是点的集合?
-
我可以提供椭圆尺寸的参数。我刚刚花了最后一个小时研究 Matplotlib 源代码。虽然 Matplotlib 不将椭圆视为栅格点的集合,但它似乎将所有闭合多边形转换为“路径”,即周长上的点集合。似乎所有闭合多边形都有一个共享的 contains_point() 方法。它比我意识到的更笼统——也许它甚至很慢。我很高兴改变策略而不使用 Matplotlib。
-
我希望 shapely 会是一个比 matplotlib 更好的库,可能想研究一下
-
查看此处获取分析解决方案math.stackexchange.com/questions/76457/…
-
查看我对匀称方法的回答
标签: python matplotlib