Lor*_*oli 7 python plot time-series matplotlib pandas
我正在尝试绘制时间序列数据,但我遇到了一些问题.
我正在使用此代码:
from matplotlib import pyplot as plt
plt.figure('Fig')
plt.plot(data.index,data.Colum,'g', linewidth=2.0,label='Data')
Run Code Online (Sandbox Code Playgroud)
但我不想在缺失值之间插值!
我怎样才能做到这一点?
由于您使用的是熊猫,您可以执行以下操作:
import pandas as pd
import matplotlib.pyplot as plt
pd.np.random.seed(1234)
idx = pd.date_range(end=datetime.today().date(), periods=10, freq='D')
vals = pd.Series(pd.np.random.randint(1, 10, size=idx.size), index=idx)
vals.iloc[4:8] = pd.np.nan
print vals
Run Code Online (Sandbox Code Playgroud)
这是来自 DataFrame 的列的示例,其中包含 DatetimeIndex
2016-03-29 4.0
2016-03-30 7.0
2016-03-31 6.0
2016-04-01 5.0
2016-04-02 NaN
2016-04-03 NaN
2016-04-04 NaN
2016-04-05 NaN
2016-04-06 9.0
2016-04-07 1.0
Freq: D, dtype: float64
Run Code Online (Sandbox Code Playgroud)
要在没有数据的日期的情况下绘制它,NaN
您可以执行以下操作:
fig, ax = plt.subplots()
ax.plot(range(vals.dropna().size), vals.dropna())
ax.set_xticklabels(vals.dropna().index.date.tolist());
fig.autofmt_xdate()
Run Code Online (Sandbox Code Playgroud)
这应该产生这样的情节:
这里的技巧是用一些值范围替换日期,这些值在调用.plot
方法时不会触发 matplotlib 的内部日期处理。
稍后,绘图完成后,用实际日期替换刻度标签。(可选)调用.autofmt_xdate()
以使标签可读。
归档时间: |
|
查看次数: |
2013 次 |
最近记录: |