You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Mayavi绘制3D散点图遇TypeError: unhashable type: 'PolyData'错误求助

Mayavi绘制3D散点图报错:TypeError: unhashable type: 'PolyData'

问题重现

使用Mayavi绘制3D散点图时,执行以下代码出现上述错误:

from mayavi import mlab
import numpy as np

X = Dataframe['Column1'].to_numpy()
Y = Dataframe['Column2'].to_numpy()
Z = Dataframe['Column3'].to_numpy()

mlab.points3d(X,Y,Z, color =(0.5,0.5,0.5))

错误成因

  • 变量名冲突:这是最常见的原因。如果代码其他位置定义了名为color的变量,且该变量是Mayavi生成的PolyData类型对象(比如之前创建的3D模型、曲面等),调用mlab.points3d时会误把这个PolyData对象当作颜色参数传入。而PolyData是不可哈希的类型,直接导致报错。
  • 数组类型异常:虽然代码中用了.to_numpy(),但如果X/Y/Z数组包含非数值类型(比如字符串、缺失值),或者数组的dtype不符合要求,Mayavi内部处理时可能生成PolyData类型的中间对象,进而触发哈希错误。可以通过print(X.dtype)检查数组是否为数值型(如float64、int64)。

内容的提问来源于stack exchange,提问作者Rajesh Patel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 04:26:00