【发布时间】:2015-01-30 16:01:56
【问题描述】:
我正在尝试生成一个较小的图形来可视化熊猫时间序列。但是,自动生成的 x-ticks 不适应新的大小并导致重叠的刻度。我想知道如何调整 x-ticks 的频率?例如。对于这个例子:
figsize(4, 2)
num = 3000
X = linspace(0, 100, num=num)
dense_ts = pd.DataFrame(sin(X) + 0.1 * np.random.randn(num),
pd.date_range('2014-01-1', periods=num, freq='min'))
dense_ts.plot()
我得到的数字是:
我可以使用 Matplotlib 日期绘图来解决这个问题,但这不是一个非常优雅的解决方案 - 代码要求我根据每个案例指定所有输出格式。
figsize(4, 2)
from matplotlib import dates
fig, ax = plt.subplots()
ax.plot_date(dense_ts.index.to_pydatetime(), dense_ts, 'b-')
ax.xaxis.set_minor_locator(dates.HourLocator(byhour=range(24),
interval=12))
ax.xaxis.set_minor_formatter(dates.DateFormatter('%H:%m'))
ax.xaxis.set_major_locator(dates.WeekdayLocator())
ax.xaxis.set_major_formatter(dates.DateFormatter('\n\n%a\n%Y'))
plt.show()
我想知道是否有办法使用 pandas plotting 模块或设置一些 axes 对象属性来解决此问题?我尝试使用 ax.freq 对象,但无法真正实现任何目标。
【问题讨论】:
标签: python matplotlib pandas plot time-series