Plotly.express.area数据缺口导致面积跌落至0的问题解决问询
问题解答
一、Plotly绘图端无法直接规避该问题
Plotly的面积图逻辑是严格按照输入数据的点位进行连线填充,不存在自动补全缺失日期+主题组合、承接历史数值的内置参数,所以必须先完成数据预处理再绘图。
二、Pandas数据调整方案
你预期的补全逻辑可以通过以下代码实现,核心是生成全量维度组合后做前向填充:
import pandas as pd # 1. 生成所有日期+所有主题的全量组合 full_idx = pd.MultiIndex.from_product( [df['date'].unique(), df['topic'].unique()], names=['date', 'topic'] ) # 2. 重建索引补全缺失的组合行 df_fixed = df.set_index(['date', 'topic']).reindex(full_idx).reset_index() # 3. 按主题分组后对累计值做前向填充,count列空值填0 df_fixed['count_cum'] = df_fixed.groupby('topic')['count_cum'].ffill() df_fixed['count'] = df_fixed['count'].fillna(0).astype(int)
处理后的df_fixed和你预期的结构完全一致,传入原绘图代码即可得到正确的面积图:
px.area(df_fixed, x="date", y="count_cum", color="topic")
内容的提问来源于stack exchange,提问作者Berni
相关产品推荐
相关产品推荐

