python将日期转换为周_Python将轴上的年日期转换为月

我有一个想逐年绘制的时间序列.我希望数据是每日的,但轴将每个月显示为“ Jan”,“ Feb”等.

目前,我可以获取每日数据,但轴为1-366(一年中的一天).

或者我可以将月度轴设置为1、2、3等(通过将索引更改为df.index.month),但是数据为月度.

如何将一年中的日轴转换为月?或者我该怎么做?

显示每日数据的代码,但轴错误:

# import

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

# create fake time series dataframe

index = pd.date_range(start='01-Jan-2012', end='31-12-2018', freq='D')

data = np.random.randn(len(index))

df = pd.DataFrame(data, index, columns=['Data'])

# pivot to get by day in rows, then year in columns

df_pivot = pd.pivot_table(df, index=df.index.dayofyear, columns=df.index.year, values='Data')

df_pivot.plot()

plt.legend(loc='center left', bbox_to_anchor=(1, 0.5))

plt.show()

解决方法:

这可以使用xticks function完成.只需在plt.show()之前添加以下代码即可:

plt.xticks(np.linspace(0,365,13)[:-1], ('Jan', 'Feb' ... 'Nov', 'Dec'))

或将以下名称包含在月份的中间:

plt.xticks(np.linspace(15,380,13)[:-1], ('Jan', 'Feb' ... 'Nov', 'Dec'))

标签:pandas,matplotlib,datetime,python

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值