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

Matplotlib LinearSegmentedColormap不可哈希类型错误求助

解决Pandas散点图报错:unhashable type: 'LinearSegmentedColormap'

问题原因

你当前使用的Pandas版本中,DataFrame.plot(scatter)的cmap参数期望接收字符串形式的色图名称,但你传入了plt.get_cmap("jet")返回的LinearSegmentedColormap实例对象。当Pandas尝试将这个对象作为键去Matplotlib的色图注册表中查找时,因为对象不可哈希,所以抛出TypeError: unhashable type: 'LinearSegmentedColormap'。

解决方案

将cmap参数的值从色图实例改为对应的字符串名称即可:

修改后的代码

%matplotlib inline  
import matplotlib.pyplot as plt
housing.plot(kind="scatter", x="longitude", y="latitude", alpha=0.4,
             s=housing["population"]/100, label="population", figsize=(10,7),
             c="median_house_value", cmap="jet", colorbar=True,
             sharex=False)
plt.legend()
save_fig("housing_prices_scatterplot")

补充说明

如果确实需要使用自定义的色图实例(而非内置名称),可以绕过Pandas的plot接口,直接用Matplotlib原生的scatter函数绘制,但对于你的场景,直接传入色图名称是最简单高效的解决方式。

内容的提问来源于stack exchange,提问作者Arya Vahedi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 13:25:25