gpt4 book ai didi

python - 绘制几年的日期时间,但在 x 轴上仅显示十二个月

转载 作者:行者123 更新时间:2023-12-04 12:34:48 24 4
gpt4 key购买 nike

我正在尝试以日期时间为 x 轴绘制数据。数据是经过几年收集的。
我可以将日期转换为日期时间格式,提取日期时间的年份部分并使用它作为颜色进行绘图。

df['Date']=pd.to_datetime(df['Date'],errors='coerce') 
df['year']=df['Date'].dt.year
df['mthday']=df['Date'].dt.strftime('%d-%b')
df=df.sort_values(by='Date')
plot=px.line(df,x='Date',y='value',color='year')
(我已经在此链接中尝试了解决方案: Plotly: How to plot just month and day on x axis? (Ignore year))
这给了我下面的图表。不同的年份以不同的颜色正确显示。但是,x 轴跨度从 2014 年到 2020 年。我希望 x 轴仅显示 1 月到 12 月以及叠加在此之上的不同年份的图表。 (又名:将 x 轴缩短/折叠为仅一组从 1 月到 12 月的月份)
Output graph with several years on x-axis
已编辑 从 df 添加样本:
    Date/   value/value2/value3/Note/Unnamed/year/mthday
187 2015-11-10 125 73 79.0 NaN NaN 2015 10-Nov
108 2015-01-25 132 88 61.0 NaN NaN 2015 25-Jan
85 2014-12-25 138 86 69.0 NaN NaN 2014 25-Dec
154 2015-07-24 131 80 62.0 NaN NaN 2015 24-Jul
226 2016-09-18 120 73 61.0 NaN NaN 2016 18-Sep
261 2018-06-07 135 72 64.0 NaN NaN 2018 07-Jun
59 2014-11-20 158 79 70.0 NaN NaN 2014 20-Nov
118 2015-02-12 145 77 70.0 NaN NaN 2015 12-Feb
287 2019-09-02 130 79 66.0 NaN NaN 2019 02-Sep
228 2016-09-26 104 76 59.0 NaN NaN 2016 26-Sep
(实际上对于图表,我想绘制所有年份的 value、value2、value3。在这个例子中,我只尝试了所有年份的 value)
第二次编辑 可能的答案:
嗨,我想我已经找到了一种方法来做到这一点。我使用 mthday 列并将其转换回日期时间。它将年份值默认为 1900。然后我使用 mthday 作为 x 轴和年份作为颜色绘制它。然后隐藏 x 轴刻度线中的年份值。
df['mthday']=pd.to_datetime(df['mthday'],format='%d-%b',errors='coerce')
fig=px.line(df,x='mthday',y='value',color='year')
fig.update_layout(xaxis_tickformat='%d-%b')
如果您有更好的方法来实现这一点,请告诉我。

最佳答案

在下面发布作为我发现这样做的一种方式:
我使用 mthday 列并将其转换回日期时间类型。这会将所有行的所有年份值设置为默认值 1900。然后我使用 mthday 作为 x 轴并通过指定 x 轴刻度线隐藏年份。

df['mthday']=df['Date'].dt.strftime('%d-%b')
df['mthday']=pd.to_datetime(df['mthday'],format='%d-%b',errors='coerce')
df=df.sort_values(by='Date')
plot=px.line(df,x='mthday',y='value',color='year')
plot.update_layout(xaxis_tickformat='%d-%b')
Plot with 12 months shown on x-axis

关于python - 绘制几年的日期时间,但在 x 轴上仅显示十二个月,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62679006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com