Plotly express 在 Python 中绘制的意外附加线

Unintended Additional line drawn by Plotly express in Python

Plotly 从原始折线图的起点到终点绘制一条额外的对角线。

其他数据,其他图表工作正常。

仅此数据添加行。

为什么会这样?

我该如何解决这个问题?

下面是代码

temp = pd.DataFrame(df[{KEY_WORD}])
temp['date'] = temp.index
fig=px.line(temp.melt(id_vars="date"), x='date', y='value', color='variable')
fig.show()
plotly.offline.plot(fig,filename='Fig_en1')

刚遇到同样的问题 -- 尝试检查 X 轴上的重复值。我正在使用以下代码:

fig = px.line(df, x="weekofyear", y="interest", color="year")
fig.show()

创建了以下情节:

我意识到这是因为在某些年份,某些日期的周数与前几年的 52/53 周有关,因此创建了重复项,例如下面的索引 93 和 145:


    date    interest    query   year    weekofyear
39  2015-12-20  44  home insurance  2015    51
40  2015-12-27  55  home insurance  2015    52
41  2016-01-03  69  home insurance  2016    53
92  2016-12-25  46  home insurance  2016    51
93  2017-01-01  64  home insurance  2017    52
144 2017-12-24  51  home insurance  2017    51
145 2017-12-31  79  home insurance  2017    52
196 2018-12-23  46  home insurance  2018    51
197 2018-12-30  64  home insurance  2018    52
248 2019-12-22  57  home insurance  2019    51
249 2019-12-29  73  home insurance  2019    52

通过修改这些(对于 1 月份日期高的周数,我从年份列中减去 1)我似乎已经摆脱了这种现象:

注意:由于数据集有些不稳定,图表之间可能存在一些其他差异。

在 post How to disable trendline in plotly.express.line? 中已经提出并回答了类似的问题,但对于您的情况,我很确定问题出在 temp.melt(id_vars="date"), x='date', y='value', color='variable' 中。看来您正在将数据从宽格式转换为长格式。您正在使用 color='variable',但未在 temp.melt(id_vars="date") 中指定。当颜色规范与数据集的结构不正确对应时,可能会出现像您这样的额外行。看看这个:

命令 1:

fig = px.line(data_frame=df_long, x='Timestamp', y='value', color='stacked_values')

地块 1:

命令 2:

fig = px.line(data_frame=df_long, x='Timestamp', y='value')

情节 2:

看出区别了吗?这就是为什么我认为您的 fig=px.line(temp.melt(id_vars="date"), x='date', y='value', color='variable').

中的规格有误

所以请分享您的数据,或重现问题的数据样本,我将有更好的机会验证您的问题。