Python 情节:使用字符串格式的日期而不是数字时不维护轴

Python Plotly: Not maintaining axes when using String formatted dates instead of Numeric

我在 plotly 和 pandas 中遇到了一个奇怪的问题,当我使用格式化的日期字符串而不是月份的 int 时,轴会翻转。

我根据我的数据集创建了这个组:

dfg = dfq.groupby(['Target', 'Mon','Month_fr','Year'])['Value'].mean().reset_index()

Target    Mon Mon_fr Yr     Value
Aggression  1   Jan 2020    0.393939
Aggression  2   Feb 2020    0.181818
Aggression  3   Mar 2020    0.430556
Aggression  4   Apr 2020    0.159420
Aggression  5   May 2020    0.445783
Aggression  6   Jun 2020    0.446154
Aggression  7   Jul 2019    0.620690
Aggression  8   Aug 2019    0.692308
Aggression  9   Sep 2019    0.207792
Aggression  10  Oct 2019    0.287671
Aggression  11  Nov 2019    0.253968
Aggression  12  Dec 2019    0.461538
Off-Task    1   Jan 2020    0.818182
Off-Task    2   Feb 2020    0.606061
Off-Task    3   Mar 2020    0.643836
Off-Task    4   Apr 2020    0.710145
Off-Task    5   May 2020    1.084337
Off-Task    6   Jun 2020    1.014925
Off-Task    7   Jul 2019    1.137931
Off-Task    8   Aug 2019    0.846154
Off-Task    9   Sep 2019    0.701299
Off-Task    10  Oct 2019    0.794521
Off-Task    11  Nov 2019    0.730159
Off-Task    12  Dec 2019    0.984615
SIB         1   Jan 2020    0.492308
SIB         2   Feb 2020    0.045455
SIB         3   Mar 2020    0.154930
SIB         4   Apr 2020    0.289855
SIB         5   May 2020    0.192771
SIB         6   Jun 2020    0.164179
SIB         7   Jul 2019    0.086207
SIB         8   Aug 2019    0.415385
SIB         9   Sep 2019    0.434211
SIB         10  Oct 2019    0.301370
SIB         11  Nov 2019    0.245902
SIB         12  Dec 2019    0.507692

并希望在 y 轴上绘制带有“值”的并排条形图

当我使用数字月份值时,这工作正常:

fig = px.bar(dfg, x=["Target", "Mon"], y="Value", color = "Target",title="Behavior Data",barmode="group")
fig.show() 

但是当我尝试使用格式化的月份变量做同样的事情时:

fig = px.bar(dfg, x=["Target", "Month_fr"], y="Value", color = "Target",title="Behavior Data",barmode="group")
fig.show() 

它翻转轴并且不再使用“值”作为表示的数据:

各位好心人以前遇到过这个奇怪的问题吗?!帮助...

我明白了!问题是我将 x 的值作为列表输入:

x=["Target", "Month_fr"],

我不知道我不需要在我的 x 变量中包含“Target”,因为该分组由“color = 'Target'”处理......这就是为什么这在使用时不是问题我不知道的月份的整数。使用 2 个字符串值作为 x 值可能存在一些问题。

感谢所有考虑过的人!如果您碰巧感兴趣,这里是工作代码:

import plotly.express as px  # (version 4.7.0)

fig = px.bar(dfg, x="Month_fr", y="Value", color = "Target",title="Behavior Data",barmode="group")
fig.show()