小编j_b*_*ker的帖子

matplotlib 中的 Pandas 自动日期时间格式

我经常在一个图中绘制来自不同来源的多个时间序列数据,其中一些需要使用 matplotlib。当格式化 x 轴时,我使用 matplotlib 的autofmt_xdate(),但我更喜欢 pandas 的自动格式化。我知道我可以使用 手动设置格式set_major_formatter(),但我创建的绘图在总范围内从几年到几天不等,因此我需要根据每个绘图调整格式。有没有办法将 matplotlib 设置为使用类似于 pandas 的日期自动格式化 x 轴?

我还使用交互式绘图,当使用 pandas 时,df.plot()x 轴会在缩放到相应范围时更新,如下所示,我也想使用 matplotlib 来实现:

pandas 格式月份 熊猫格式日 pandas 格式日间

版本:

Python: 3.7.1
Pandas: 0.23.3
Matplotlib: 2.2.2
Run Code Online (Sandbox Code Playgroud)

所需格式:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

ix = pd.date_range('1/1/2017', '11/1/2018', freq='D')
vals = np.random.randn(len(ix))
df = pd.DataFrame({'Values': vals}, index=ix)

fig, ax = plt.subplots(1, 1, figsize=[8,6])
df.plot(ax=ax, lw=1)
plt.show()
Run Code Online (Sandbox Code Playgroud)

所需的 pandas 格式

当前格式:

fig, ax = plt.subplots(1, 1, figsize=[8,6])
ax.plot(df, lw=1)
fig.autofmt_xdate()
plt.show()
Run Code Online (Sandbox Code Playgroud)

当前的 matplotlib 格式

python plot datetime matplotlib pandas

3
推荐指数
1
解决办法
3067
查看次数

标签 统计

datetime ×1

matplotlib ×1

pandas ×1

plot ×1

python ×1