13s*_*en1 6 python datetime matplotlib pandas
我有一个时间序列,我想逐年绘制。我希望数据是每天的,但轴每个月都显示为“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()
Run Code Online (Sandbox Code Playgroud)
这可以使用xticks 函数来完成。只需在之前添加以下代码plt.show():
plt.xticks(np.linspace(0,365,13)[:-1], ('Jan', 'Feb' ... 'Nov', 'Dec'))
Run Code Online (Sandbox Code Playgroud)
或者使用以下方法让月份名称出现在月中:
plt.xticks(np.linspace(15,380,13)[:-1], ('Jan', 'Feb' ... 'Nov', 'Dec'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1813 次 |
| 最近记录: |