'Path3DCollection' object has no attribute 'shape'
时间: 2023-06-22 08:17:37 浏览: 70
`'Path3DCollection' object has no attribute 'shape'` 错误提示表明你在使用一个名为 `shape` 的属性时,将其应用于了一个 `Path3DCollection` 对象上,但是这个对象并没有 `shape` 属性,因此 Python 报错了。
一种可能的原因是你的代码中使用了一个名为 `shape` 的变量或对象,导致与你期望的不同。你可以尝试在代码中搜索 `shape`,看看是否有其他地方也使用了这个名称。
另外,`Path3DCollection` 是 Matplotlib 中用于绘制 3D 图形的对象,如果你想要获取 `Path3DCollection` 对象的形状信息,可以使用 `get_paths()` 方法获取所有路径信息,并对路径信息进行处理。例如,可以通过以下代码获取 `Path3DCollection` 对象的形状:
```python
paths = path_collection.get_paths()
shapes = [p.vertices.shape for p in paths]
```
其中,`path_collection` 是你要获取形状信息的 `Path3DCollection` 对象,`get_paths()` 方法返回所有路径信息的列表,`p.vertices` 返回路径的顶点坐标,`p.vertices.shape` 返回路径的形状,即顶点数量和坐标维度。最终,`shapes` 是一个形状信息的列表,每个元素是一个二元组,表示一个路径的形状。
相关问题
AttributeError: 'Path3DCollection' object has no attribute '_offsets3d'
引用, label="surf") ax.legend() plt.show() A:在ax.legend()加入如下代码 surf._facecolors2d=surf._facecolors3d surf._edgecolors2d=surf._edgecolors3d 修改后代码 fig = plt.figure() ax = Axes3D(fig) X, Y = np.meshgrid(3, 3) surf = ax.plot_surface(X, Y, np.zeros([3,3], label="surf") surf._facecolors2d=surf._facecolors3d surf._edgecolors2d=surf._edgecolors3d ax.legend() plt.show()。
问题:AttributeError: 'Path3DCollection' object has no attribute '_offsets3d'
回答: 这个错误通常是由于路径集合对象没有属性'_offsets3d'导致的。具体解决方法可以尝试在绘制路径集合之前设置'_offsets3d'属性。<span class="em">1</span>
#### 引用[.reference_title]
- *1* [python使用Axes3D画三维图加入legend图例时报错AttributeError: ‘Poly3DCollection‘ object has no ...](https://blog.csdn.net/Jolen_xie/article/details/121757791)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
AttributeError: 'Poly3DCollection' object has no attribute '_facecolors3d'
AttributeError: 'Poly3DCollection' object has no attribute '_facecolors3d' 是由于在使用Axes3D画三维图时,未正确设置Poly3DCollection对象的_facecolors3d属性,导致报错。
解决办法是在ax.legend()之前加入如下代码:
surf._facecolors2d = surf._facecolors3d
surf._edgecolors2d = surf._edgecolors3d
阅读全文