如何用Plotly制作按周着色的条形图?遇KeyError问题求助
解决Plotly条形图的KeyError及实现目标效果
- 先解决
KeyError问题:你写的px.bar(df, x=['A','B','D','E'], color='date')报错,是因为x参数传的列表不是DataFrame里的列名,Plotly会去df里找名为'A'、'B'这些的列,找不到就会抛出KeyError。 - 要做出类似Excel的目标条形图,首先得把数据转成Plotly适配的长格式(Excel常用宽格式,Plotly更适合长格式):
- 用
pd.melt()把宽格式数据转成三列:类别(对应原来的A/B/D/E)、数值、日期(date) - 再调用px.bar,指定x为类别列,y为数值列,color为'date',就能实现分组或堆叠的条形图
- 用
- 示例代码:
import pandas as pd import plotly.express as px # 假设原始df是宽格式:列是A/B/D/E,行对应不同date的数值 df_melted = pd.melt(df, id_vars='date', var_name='category', value_name='value') # barmode可选'group'(分组条形)或'stack'(堆叠条形),按需选择 fig = px.bar(df_melted, x='category', y='value', color='date', barmode='group') fig.show() - 注意:如果你的df里没有'date'列,color参数也会报错,得确保数据里包含用于区分颜色的日期列。
内容的提问来源于stack exchange,提问作者benr
相关产品推荐
相关产品推荐

