Я пытаюсь построить меня sh, используя координаты узла и связь, как указано здесь:
ссылка
У меня есть список координат узла, хранящийся в массив numpy (координаты xy и z)
Я определяю x и y как:
x = coords[:,0]
y = coords[:,1]
У меня есть подключение узла в массиве numpy connectivity
, оно имеет номера идентификаторов координат, которые соединяются вместе
, затем, следуя их примеру, сделайте следующее:
xy = np.c_[x,y]
verts= xy[connectivity]
pc = matplotlib.collections.PolyCollection(verts)
и я получу эту ошибку:
File "C:\Users\deden\AppData\Local\Continuum\anaconda3\envs\dhi\lib\site-packages\matplotlib\path.py", line 130, in __init__
"'vertices' must be a 2D list or array with shape Nx2")
ValueError: 'vertices' must be a 2D list or array with shape Nx2
для проверьте:
xy.shape[1]
равно 2 и xy.ndim
равно 2
строка 130 в файле в трассировке:
vertices = _to_unmasked_float_array(vertices)
if vertices.ndim != 2 or vertices.shape[1] != 2:
raise ValueError(
"'vertices' must be a 2D list or array with shape Nx2")
и _to_unmasked_float_array(vertices)
вызовы :
def _to_unmasked_float_array(x):
"""
Convert a sequence to a float array; if input was a masked array, masked
values are converted to nans.
"""
if hasattr(x, 'mask'):
return np.ma.asarray(x, float).filled(np.nan)
else:
return np.asarray(x, float)
Я не понимаю, почему я получаю это сообщение об ошибке, если verts.shape[1]
и verts.ndim
= 2
также np.asarray(verts, float).shape[1]
и np.asarray(verts, float).ndim
также 2
что, черт возьми, происходит? я что-то пропустил? был бы очень признателен, кто-нибудь помочь
также ..
verts.shape
возвращает
(181660, 2)