【发布时间】:2020-08-20 14:57:10
【问题描述】:
我在将 Matplotlib 行添加到 Pandas 图中时遇到了一些问题。我正在尝试使用斜率绘制一条直线来确定起点和终点是什么。但是结果图看起来根本不像一条直线。
我已将案例简化为下面的 MVCE。初始部分用于设置复制我拥有的复杂数据框的关键功能。
import pandas as pd
import matplotlib.pyplot as plt
LEN_SER = 23
dates = pd.date_range('2015-07-03', periods=LEN_SER, freq='B')
df = pd.DataFrame(range(1,LEN_SER+1), index=dates)
ts = df.iloc[:,0]
# The above is the setup of the MVCE to replicate the issue.
fig = plt.figure()
ax1 = plt.subplot2grid((1, 1), (0, 0))
ax1.plot([ts.index[5], ts.index[20]],
[ts[5], ts[5] + (1.0 * (20 - 5))], 'o-')
ts.plot(ax=ax1)
plt.show()
这给出了一个由于周末而具有波浪线的图表。 Matplotlib 正在影响 Pandas 绘制系列的方式。如果我取出 ax1.plot() 线,那么它就变成了一条直线。
所以问题是:如何使用 Matplotlib 在我的 Pandas 图上绘制直线?换句话说,我希望绘图将轴标签视为类别,因此周末将被忽略。这样一来,我希望 Matplotlib 和 Pandas 都能给出一条直线。
【问题讨论】:
标签: python pandas matplotlib