我正在试验axhline
并且我发现了不可预知的行为。当我添加axhline
时,有时它会完全弄乱我的x-axis
,有时则不会。{/ p>
import matplotlib.pyplot as plt
import pandas as pd
idx = pd.date_range('2016-01-01', '2016-03-31')
ts = pd.Series([0. for d in idx], index=idx)
t1 = ts['2016-01'] + 1
t2 = ts['2016-02'] + 2
t3 = ts['2016-03'] + 3
正如我所希望的那样。
现在让我们添加axhline
ax = ts.plot()
ax.axhline(y=1.5)
t1.plot(ax=ax)
t2.plot(ax=ax)
t3.plot(ax=ax)
plt.ylim([-1, 4]);
根本不是我所期待的!
如果我在最后添加axhline
。
ax = ts.plot()
t1.plot(ax=ax)
t2.plot(ax=ax)
t3.plot(ax=ax)
ax.axhline(y=1.5)
plt.ylim([-1, 4]);
没问题。
为什么我绘制的顺序决定了x轴的比例?
import matplotlib
print pd.__version__
print matplotlib.__version__
0.18.0
1.5.1
答案 0 :(得分:2)
"问题"没有错。情节。您只需要重新缩放x轴,以便时间刻度在2016年开始。如果您查看"问题"如果情节非常接近,你会发现情节的右端有三个点。
快速解决问题的方法:
ax = ts.plot()
ax.axhline(y=1.5)
t1.plot(ax=ax)
t2.plot(ax=ax)
t3.plot(ax=ax)
plt.autoscale()
plt.ylim([-1, 4])
plt.show()
如果您先创建axhline
,则似乎在pyplot中,您必须在执行plt.show()
之前重新缩放。