1

我有一个如下所示的数据框。

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

我绘制了变量Countsvs 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')

有谁知道为什么?我怎样才能解决这个问题?

4

1 回答 1

2

我相信这是因为您使用的是非标准日期格式yyyy_mm,该格式无法识别为日期,而是分类,因此使用的规则与您对丢失时间序列数据的预期不同。

您可以通过将日期格式更改为yyyy-mm(下划线通过 更改为连字符dfm['Year_Month'] = dfm['Year']+'-'+dfm['Month'])来解决此问题,这确实会按预期识别为有效日期和绘图:

在此处输入图像描述

于 2019-11-02T08:19:48.997 回答