如果我运行以下代码:
import pandas as pd
from datetime import datetime
import numpy as np
import matplotlib.pyplot as plt
#df = pd.DataFrame(np.random.randn(3,1), index=[8,9,10], columns=['test'])
df = pd.DataFrame(np.random.randn(3,1), index=[datetime(2012,8,1),datetime(2012,9,1),datetime(2012,10,1)], columns=['test'])
fig = plt.figure()
ax1 = fig.add_axes([0.1, 0.1, 0.8, 0.8])
ax1.invert_xaxis()
ax1.plot(df.index, df['test'])
fig.show()
我得到一个例外:
RuntimeError: MillisecondLocator estimated to generate 5270400 ticks from 2012-08-01 00:00:00+00:00 to 2012-10-01 00:00:00+00:00: exceeds Locator.MAXTICKS* 2 (2000)
如果我禁用“invert_xaxis”命令,并且索引使用非日期时间值,它工作正常。
在绘制带有乱序日期索引的数据框时,我已经看到了一些类似的错误报告(例如,这里和这里),但这在早期版本的 pandas 中得到了修复。
关于解决方法的任何建议?我正在使用 matplotlib 1.2.1 和 pandas 0.11.0