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

技术求助:基于pandas透视表生成Plotly热力图遇问题

别着急!刚接触编程遇到这种卡壳的情况太正常了,我来帮你一步步搞定用Pandas透视表生成Plotly热力图的事儿~

第一步:先把透视表调整成正确格式

首先得确保你的Pandas透视表是宽格式——也就是把4种所有权类型放在列的位置,国家放在行的位置,数值填在对应的单元格里。举个例子,正确的结构大概是这样:

国家所有权类型A所有权类型B所有权类型C所有权类型D
中国100200150300
美国180220190250

如果你的原始数据是「长格式」(比如每一行是一个国家+一种所有权类型+对应数值),可以用pd.pivot_table()快速转成宽表,代码示例如下:

import pandas as pd

# 假设你的原始数据存储在df里,列名分别是"国家"、"所有权类型"、"数值"
pivot_df = pd.pivot_table(
    df,
    index="国家",          # 把国家作为y轴的行
    columns="所有权类型",  # 把所有权类型作为x轴的列
    values="数值",         # 热力图颜色对应的数值
    aggfunc="sum"         # 如果有重复的组合,用sum/mean等聚合,按需选择
)
第二步:用Plotly生成热力图

搞定透视表之后,就可以用Plotly绘制热力图了,代码非常直观:

import plotly.express as px

# 生成热力图
fig = px.imshow(
    pivot_df,
    labels=dict(x="所有权类型", y="国家", color="数值"),  # 设置轴和颜色的说明标签
    x=pivot_df.columns,  # x轴对应透视表的列(所有权类型)
    y=pivot_df.index,    # y轴对应透视表的行(国家)
    color_continuous_scale="Blues"  # 可选颜色方案,比如"Reds"、"Viridis"都可以
)

# 调整布局让图表更美观
fig.update_layout(
    title="国家-所有权类型热力图",  # 自定义图表标题
    xaxis_title="所有权类型",
    yaxis_title="国家",
    xaxis_tickangle=-45  # 把x轴标签倾斜45度,避免名称重叠
)

# 显示图表
fig.show()
几个容易踩的小坑
  • 如果透视表里有缺失值(NaN),Plotly会显示浅色空白,你可以用pivot_df.fillna(0)把缺失值替换成0,或者根据你的业务需求处理;
  • 要是还没安装Plotly和Pandas,先在终端里跑pip install pandas plotly完成安装;
  • 哪怕你的所有权类型不止4种也没关系,Plotly会自动适配所有列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:42:07