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

如何在matplotlib的scatter()中获取颜色条或图例并提取颜色代码?

解决散点图颜色含义展示与颜色代码提取问题

一、正确展示颜色对应的数值含义

你当前代码里用color=f_trains['LstPrice']的方式不对——它会把整列整数直接当作颜色值解析(比如整数会被当成RGB分量的一部分,这不是你要的效果)。正确做法是用c参数指定颜色映射的变量,再搭配颜色条来明确颜色和数值的对应关系:

import matplotlib.pyplot as plt

# 绘制散点图,用c绑定颜色映射的列,cmap可选配色方案
ax = f_trains.plot.scatter("Latitude", "Longitude", c="LstPrice", cmap="viridis")
# 添加颜色条并标注含义
plt.colorbar(ax.collections[0], label="LstPrice(价格)")
plt.show()

运行后会出现颜色条,清晰展示不同颜色对应的LstPrice数值范围。

二、提取每个点对应的颜色代码

如果要获取每个数据点对应的十六进制或RGB颜色代码,可以通过以下步骤实现:

  1. 基于数据的价格范围创建颜色映射器
  2. 对每个价格值做颜色转换并存储
# 创建颜色映射对象,匹配价格的最大最小值范围
sm = plt.cm.ScalarMappable(cmap="viridis", norm=plt.Normalize(vmin=f_trains['LstPrice'].min(), vmax=f_trains['LstPrice'].max()))
sm.set_array([])

# 为每个价格生成对应的十六进制颜色代码,存入数据框
f_trains['color_code'] = f_trains['LstPrice'].apply(lambda x: plt.colors.to_hex(sm.to_rgba(x)))

# 查看结果示例
print(f_trains[['LstPrice', 'color_code']].head())

执行后数据框会新增color_code列,每个价格对应的颜色代码都能直接提取使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 04:52:07