如何获得指定月份的开始日期?(matplotlib)

vohkndzv  于 2023-01-26  发布在  其他
关注(0)|答案(2)|浏览(87)
# FEB
# configuring the figure and plot space
fig, lx = plt.subplots(figsize=(30,10))

# converting the Series into str so the data can be plotted
wd = df2['Unnamed: 1']
wd = wd.astype(float)

# adding the x and y axes' values
lx.plot(list(df2.index.values), wd)

# defining what the labels will be 
lx.set(xlabel='Day', ylabel='Weight', title='Daily Weight February 2022')

# defining the date format 
date_format = DateFormatter('%m-%d')
lx.xaxis.set_major_formatter(date_format)
lx.xaxis.set_minor_locator(mdates.WeekdayLocator(interval=1))

我希望x轴具有的值:
〔二月四日、二月五日、二月六日、二月七日、二月八日、二月九日、二月十日、二月十一日、二月十二日、二月十三日、二月十四日、二月十五日、二月十六日、二月十七日、二月十八日、二月十九日、二月二十日、二月二十一日、二月二十二日、“第二届会议”、“第二届会议24”、“第二届会议25”、“第二届会议26”、“第二届会议27”]
x轴上的值:
enter image description here
它给了我正确的值的数量,但没有正确的标签。我试着用xlim=['2/4','2/27]指定开始和结束,但是看起来确实有效。

piv4azn7

piv4azn71#

如果能看到您的df2的实际外观,那就太好了,但是从您的代码片段来看,它似乎记录了权重,但没有记录相应的日期。
准备一个有日期的数据框怎么样?
(Also,因为这个问题也使用了seaborn标记,所以我将使用Seaborn,但同样的想法应该可以工作。)

import pandas as pd
import seaborn as sns
import seaborn.objects as so
from matplotlib.dates import DateFormatter

sns.set_theme()

创建一个索引,从2月4日开始,记录体重的天数。

index = pd.date_range(start="2/4/2022", periods=df.count().Weight, name="Date")

然后使用Seaborn's object interface(v0.12+),我们可以:

(
    so.Plot(df2.set_index(index), x="Date", y="Weight")
        .add(so.Line())
        .scale(x=so.Temporal().label(formatter=DateFormatter('%m-%d')))
        .label(title="Daily Weight February 2022")
)

gcuhipw9

gcuhipw92#

我已经解决了这个问题。非常简单。我只是在set_major_formatter中添加了mdates.WeekdayLocator()。我在浏览matplotlib文档时忽略了这一点。但很高兴找到了这个解决方案。

相关问题