3

plotly_with_extra_diagonal_line

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')
4

2 回答 2

2

刚刚遇到了同样的问题——尝试检查 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),我似乎已经摆脱了这种现象:

没有多余线条的情节

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

于 2020-03-22T18:04:15.700 回答
1

如何禁用 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').

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

于 2020-03-22T21:05:06.647 回答