закрашенный третьей переменной испортил порядок оси даты с plotly.express - PullRequest
1 голос
/ 01 ноября 2019

У меня есть датафрейм, как показано ниже.

import plotly.express as px
import pandas as pd
dfm = pd.DataFrame({'Year':['2017','2017','2017','2017','2018','2018','2018','2018'],
                    'Month':['01', '04', '10', '12', '01', '04', '10', '12'],
                    'Counts':[12, 33, 9, 45, 11, 54, 22, 13],
                    'Region': ['A', 'B', 'A', 'A', 'B', 'B', 'A', 'B']})
dfm['Year_Month'] = dfm['Year']+'_'+dfm['Month']

Я составил переменную Counts против Year_Month. Все выглядит нормально.

fig = px.line(dfm, x="Year_Month", y="Counts")
fig.update_traces(mode='markers+lines')

Однако, когда я попытался закрасить линию третьей переменной, Region в этом случае, ось Year_Month полностью испортилась.

fig = px.line(dfm, x="Year_Month", y="Counts", color='Region')
fig.update_traces(mode='markers+lines')

Кто-нибудь знает почему? Как я могу это исправить?

1 Ответ

2 голосов
/ 02 ноября 2019

Я полагаю, что это потому, что вы используете нестандартный формат даты yyyy_mm, который графически не распознает как дату, а скорее категоричен и, таким образом, использует другие правила, чем вы ожидаете от отсутствующих данных временных рядов.

Вы можете исправить это, изменив формат даты на yyyy-mm (подчеркивание изменено на дефис через dfm['Year_Month'] = dfm['Year']+'-'+dfm['Month']), что графически распознает действительные даты и графики, как и ожидалось:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...