Plotly express在Python中绘制的意外行

问题描述 投票:2回答:2

plotly_with_extra_diagonal_line

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

[其他数据,其他图形可以正常工作。

仅此数据添加该行。

为什么会这样?

我该如何解决?

下面是代码

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')
python jupyter-notebook plotly plotly-python plotly-express
2个回答
0
投票

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

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

创建了以下情节:

plot with extra lines

[我意识到这是因为在某些年份中,我所约会的某些星期数与前些年的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),我似乎摆脱了这种现象:

plot with no extra lines

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


0
投票

当您没有共享数据样本时,很难说出是什么原因导致了问题。在帖子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:

enter image description here

命令2:

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

图2:

enter image description here

看到区别了吗?这就是为什么我认为您的fig=px.line(temp.melt(id_vars="date"), x='date', y='value', color='variable')中存在错误的规格。

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

© www.soinside.com 2019 - 2024. All rights reserved.