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

如何在Plotly Dash中基于国家情感统计数据绘制堆叠柱状图

堆叠情感柱状图实现调整方案

你的原代码存在两处核心错误,调整后的可运行代码如下:

import pandas as pd
import dash
from dash import html, dcc
import plotly.graph_objects as go

app = dash.Dash(__name__)
# 读取数据
df = pd.read_csv("C:\\Users\\sentiment_by_location.csv")
# 提取所有情感分类
sentiment_list = df['sentiment'].unique()

app.layout = html.Div([
    html.H2(children='Sentiments by Location'),
    dcc.Graph(
        id='sentiment-location',
        figure={
            'data': [
                # 每个情感分类单独生成一个Bar轨迹
                go.Bar(
                    x=df[df['sentiment'] == sent]['country'],
                    y=df[df['sentiment'] == sent]['count'],
                    name=sent
                ) for sent in sentiment_list
            ],
            'layout': {
                'title': 'Sentiment By Location',
                # 开启柱状图堆叠模式
                'barmode': 'stack'
            }
        }
    )
])

if __name__ == '__main__':
    app.run_server(debug=True)

关键修改点说明

  • 修正列名引用错误:你的数据集中国家字段为country,原代码错误使用了location
  • 重构轨迹生成逻辑:堆叠柱状图需要为每个分类(这里是三类情感)单独生成Bar轨迹,同个国家下的不同情感轨迹会自动按位置对齐
  • 新增堆叠配置:在布局参数中添加barmode='stack',开启plotly的柱状图堆叠能力
  • 修正y轴赋值错误:原代码错误将情感列和计数列同时传入y参数,现在仅传入对应情感分类的计数值

如果部分国家缺少某类情感的统计数据,代码会自动适配,不会出现错位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:15:11