gpt4 book ai didi

python - 如何将显示日期和时间的 x 轴更改为仅显示月份名称?

转载 作者:行者123 更新时间:2023-12-04 15:15:46 25 4
gpt4 key购买 nike

我有包含 2 列日期/时间和值的数据框“df”:

import numpy as np
import pandas as pd
df = pd.DataFrame(pd.date_range('2012-06-01','2012-06-04', freq='H'), columns=['date/time'])
data = np.random.randint(5, 100, 73)
temp= pd.DataFrame(data, columns=['Value'])
df['Value']=temp
df.head()

当我用这些数据绘制线图时:

lines=df.plot.line(x='date/time', y='Value')

我得到这张图: enter image description here

我对图表很满意,但我希望我的 x 轴仅显示月份名称。同样在我的实际图表中,我有很多不同月份的日期,因此在显示它时,x 轴标签不应重叠。有人可以帮我解决这个问题吗?

我已经看过 .xaxis.set_major_locator 之类的东西,但我无法让它工作。

最佳答案

我不得不稍微更改您的代码,因为它使用了超过 3 天的每小时范围,这导致所有月份都是 6 月。此外,您的 temp 行是不必要的,因为您可以等效地创建随机整数并将其直接分配给 df['Value'] 而无需先创建 temp 数据框。

import numpy as np
import pandas as pd
df = pd.DataFrame(pd.date_range('2011-06-01','2012-06-04', freq='M'), columns=['date/time'])
df['Value'] = np.random.randint(5, 100, len(df.index))

fig = plt.figure()
ax = fig.add_subplot(111)

months_list = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
### Iterate over the TimeStamp objects, calling the month format of each
months = [months_list[dt.month - 1] for dt in df['date/time']]

ax.plot(months, df['Value'])
plt.show()

对于避免重叠刻度标签的部分,您可以对标签进行基本旋转:

ax.tick_params(axis='x', labelrotation=30)

或引用这些显示两种不同方法的答案:

  1. Adds a label pad to alternate tick labels
  2. Fine-tune rotation and positions of tick labels

结果如下: Basic rotation

关于python - 如何将显示日期和时间的 x 轴更改为仅显示月份名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64353456/

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