matplotlib pnpoly示例结果

2024-10-01 15:35:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我按照下面的示例运行了以下代码:

http://matplotlib.org/faq/howto_faq.html#test-whether-a-point-is-inside-a-polygon

谢谢你的帮助。谢谢您。在

>>>import numpy as np
>>>import matplotlib.nxutils as nx
>>>verts = np.array([ [0,0], [0, 1], [1, 1], [1,0]], float)
>>>nx.pnpoly(0.5, 0.5, verts)

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "C:\Python27\lib\site-packages\matplotlib\nxutils.py", line 26, in pnpoly
    return p.contains_point(x, y)
  File "C:\Python27\lib\site-packages\matplotlib\path.py", line 289, in contains_point
    transform = transform.frozen()
AttributeError: 'float' object has no attribute 'frozen'

>>>nx.pnpoly(0.5, 1.5, verts)

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "C:\Python27\lib\site-packages\matplotlib\nxutils.py", line 26, in pnpoly
    return p.contains_point(x, y)
  File "C:\Python27\lib\site-packages\matplotlib\path.py", line 289, in contains_point
    transform = transform.frozen()
AttributeError: 'float' object has no attribute 'frozen'

Tags: inpymatplotliblibpackageslinesitetransform
2条回答

尽管pnpoly已被弃用,但您的错误是由一个错误引起的,该错误已在this commit on GitHub中修复。在

错误是由于pnpoly使用错误的方法签名代理到contains_point而导致的。在

matplotlib论坛上的一个用户提供了以下内容,与我测试的一样:

from matplotlib.path import Path
path = Path(polygonVerts)
isInside = path.contains_point(point)

相关问题 更多 >

    热门问题