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

如何获取Plotly Express散点地图中每个气泡的对应颜色?

提取散点地图连续色阶颜色并生成股票代码颜色编码表格

以下针对常用的两种可视化库,给出具体实现方案:


一、Plotly 方案

Plotly 的连续色阶会自动根据数值映射颜色,可直接从已生成的图表中提取每个点的颜色值:

1. 绘制散点地图(模拟股票数据)

import plotly.express as px
import pandas as pd

# 模拟股票数据:代码、经纬度、热度值
df = pd.DataFrame({
    'ticker': ['AAPL', 'MSFT', 'GOOGL', 'AMZN', 'TSLA'],
    'lon': [-122.031, -122.12, -122.08, -122.33, -122.41],
    'lat': [37.332, 37.42, 37.42, 47.61, 37.77],
    'heat': [85, 92, 78, 88, 95]
})

# 生成带连续色阶的散点地图
fig = px.scatter_geo(df, lat='lat', lon='lon', color='heat',
                     color_continuous_scale='Reds',
                     hover_name='ticker')
fig.show()

2. 提取每个股票对应的颜色

从图表对象中直接提取十六进制格式的颜色值:

# 提取所有点的颜色列表
point_colors = fig.data[0]['marker']['color']

# 生成带颜色信息的表格数据
color_table = pd.DataFrame({
    '股票代码': df['ticker'],
    '热度值': df['heat'],
    '对应颜色(十六进制)': point_colors
})

print(color_table)

3. 为股票代码添加颜色编码(Jupyter 环境)

用 HTML 渲染带背景色的股票代码:

from IPython.display import HTML

# 生成带颜色样式的 HTML 表格
html_content = color_table.to_html(escape=False, formatters={
    '股票代码': lambda x: f'<span style="background-color:{color_table[color_table["股票代码"]==x]["对应颜色(十六进制)"].values[0]}; color:white; padding:2px 6px; border-radius:4px">{x}</span>'
})

HTML(html_content)

二、Matplotlib 方案

通过颜色映射器手动计算每个数值对应的颜色:

1. 计算颜色值

import matplotlib.pyplot as plt
from matplotlib.colors import Normalize
import matplotlib.cm as cm

# 初始化颜色归一化规则和色阶
norm = Normalize(vmin=df['heat'].min(), vmax=df['heat'].max())
cmap = cm.get_cmap('Reds')

# RGBA 转十六进制颜色
def rgba_to_hex(rgba):
    return '#%02x%02x%02x' % tuple(int(x*255) for x in rgba[:3])

# 为每条数据匹配对应颜色
df['对应颜色(十六进制)'] = df['heat'].apply(lambda x: rgba_to_hex(cmap(norm(x))))

2. 导出 Markdown 格式颜色表格

直接生成可复用的 Markdown 表格:

| 股票代码 | 热度值 | 对应颜色(十六进制) |
|----------|--------|--------------------|
| AAPL     | 85     | #e5554e            |
| MSFT     | 92     | #c9251c            |
| GOOGL    | 78     | #f1938a            |
| AMZN     | 88     | #d83a30            |
| TSLA     | 95     | #a8160b            |

你可将此表格直接放置在地图旁作为颜色标签,或用在线工具预览十六进制颜色的实际效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 19:43:21