2013-05-09 4 views
1

Я побежал следующий код, как на примере здесь:Matplotlib pnpoly пример приводит к ошибке

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' 
+1

Я получил это предупреждение, когда я его протестировал '/home/tcaswell/local_installs/lib/python2.7/site-packages/matplotlib-1.3.x-py2.7-linux-x86_64.egg/matplotlib/nxutils.py : 23: MatplotlibDeprecationWarning: nxutils устарела. Вместо этого используйте matplotlib.path.Path.contains_point. ' – tacaswell

+0

, но это не должно помешать работе? – codingknob

+0

Хотелось бы, чтобы они обновили свою документацию. Хмм. Спасибо, что указали это. Ценить это. – codingknob

ответ

2

Пользователь на Matplotlib форуме при условии, что следующий, который работает как я тестировал:

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

Хотя pnpoly устарела, ваша ошибка была вызвана ошибкой, которая с тех пор была зафиксирована в this commit on GitHub ,

Ошибка pnpoly Проксирование до contains_point с неправильной подписью метода.