Непреднамеренная дополнительная линия, проведенная Plotly express in Python - PullRequest
3 голосов
/ 22 марта 2020

plotly_with_extra_diagonal_line

Plotly dr aws дополнительная диагональная линия от начала до конечной точки исходного линейного графика.

Другие данные, другие графики работают нормально.

Только эти данные добавляют строку.

Почему это происходит?

Как это исправить?

Ниже приведен код

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

Ответы [ 2 ]

1 голос
/ 23 марта 2020

Аналогичный вопрос был задан и получен ответ в сообщении Как отключить линию тренда на графике. 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').

есть неправильная спецификация. Поэтому, пожалуйста, поделитесь своими данными или образцом данных, которые воспроизводят проблему, и у меня будет больше шансов проверить вашу проблему .

1 голос
/ 22 марта 2020

Только что возникла та же проблема - попробуйте проверить наличие дублирующихся значений на оси 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

NB: там могут быть некоторые другие различия между диаграммами из-за того, что набор данных несколько изменчив.

...