为何Plotly柱状图同一分类出现堆叠?多楼层会议室数据异常
解决Plotly柱状图堆叠/直方图数值错误问题
问题根源
- 添加多楼层数据后,Plotly默认把同一时间点下不同楼层的柱子堆叠显示,所以你看到的是各楼层数值的拆分(4+6+1=11),而非需要的总数量。
- 改用直方图完全找错了方向:直方图是用来统计数据分布频次的,不是展示你预计算好的分类数值,自然会出现数值错误。
解决方案:先聚合数据,再画柱状图
你需要先按时间维度把各楼层的会议室使用数量求和,再基于聚合后的数据生成柱状图,就能直接显示每个时间点的总使用数。
步骤1:数据聚合(Pandas示例)
假设你的原始数据框是df,包含Time(如第1周周一10点)、Floor(楼层)、Meeting Rooms in Use x Floor(该楼层该时段使用数)三列:
import pandas as pd # 按时间维度聚合,求和各楼层的使用数量 agg_df = df.groupby('Time')['Meeting Rooms in Use x Floor'].sum().reset_index()
步骤2:用Plotly绘制柱状图
基于聚合后的agg_df画图,同一时间点只会显示一根柱子,对应总使用数:
import plotly.express as px fig = px.bar(agg_df, x='Time', y='Meeting Rooms in Use x Floor', title='Total Meeting Rooms in Use by Time') fig.show()
可选:保留楼层维度的分组显示
如果你想同时看到各楼层的贡献但不需要堆叠,可以设置barmode='group',此时每个时间点会有多根柱子分别对应各楼层:
fig = px.bar(df, x='Time', y='Meeting Rooms in Use x Floor', color='Floor', barmode='group', title='Meeting Rooms in Use by Time and Floor') fig.show()
内容的提问来源于stack exchange,提问作者AcidAnalyst
相关产品推荐
相关产品推荐

