在Python中由Plotly express绘制的意外附加线
从原始线形图的起点到终点,绘出一条额外的对角线 其他数据、其他图表都可以正常工作 只有此数据才能添加行 为什么会发生这种情况 我怎样才能解决这个问题 下面是代码在Python中由Plotly express绘制的意外附加线,python,jupyter-notebook,plotly,plotly-python,plotly-express,Python,Jupyter Notebook,Plotly,Plotly Python,Plotly Express,从原始线形图的起点到终点,绘出一条额外的对角线 其他数据、其他图表都可以正常工作 只有此数据才能添加行 为什么会发生这种情况 我怎样才能解决这个问题 下面是代码 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.plo
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”)
图2(图3)
这创建了以下绘图:
我意识到这是因为在某些年份中,我的一些日期周数与前几年的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),我似乎已经摆脱了这种现象:
注:由于数据集的流动性,图表之间可能存在一些其他差异。在帖子中也提出并回答了类似的问题,但对于您的情况,我非常确定问题在于
temp.melt(id\u vars=“date”)、x='date',y='value',color='variable'
。看起来您正在将数据从宽格式转换为长格式。您使用的是color='variable'
而没有在temp.melt(id\u vars=“date”)
中指定它。当颜色规范与数据集的结构不正确对应时,可能会出现像您这样的额外行。看看这个:
命令1:
fig = px.line(data_frame=df_long, x='Timestamp', y='value', color='stacked_values')
fig = px.line(data_frame=df_long, x='Timestamp', y='value')
绘图1:
fig = px.line(data_frame=df_long, x='Timestamp', y='value', color='stacked_values')
fig = px.line(data_frame=df_long, x='Timestamp', y='value')
命令2:
fig = px.line(data_frame=df_long, x='Timestamp', y='value', color='stacked_values')
fig = px.line(data_frame=df_long, x='Timestamp', y='value')
绘图2:
fig = px.line(data_frame=df_long, x='Timestamp', y='value', color='stacked_values')
fig = px.line(data_frame=df_long, x='Timestamp', y='value')
看到区别了吗?这就是为什么我认为您的fig=px.行(temp.melt(id_vars=“date”)、x='date',y='value',color='variable')
中存在错误规范的原因
因此,请分享您的数据,或您的数据样本,再现问题,我将有更好的机会验证您的问题