2016-04-07 33 views
3

時系列データをプロットしようとしていますが、いくつか問題があります。補間を削除する欠損値の時系列プロット

from matplotlib import pyplot as plt 
plt.figure('Fig') 
plt.plot(data.index,data.Colum,'g', linewidth=2.0,label='Data') 

をそして私はこの取得::

私はこのコードを使用してい enter image description here

をしかし、私は欠損値の間の補間をたくありません!

どうすればこの問題を解決できますか?あなたはパンダを使用しているので

+1

だから散布図だけが必要ですか?私。欠損値の間に線はありませんか? – Sam

+0

@Samが既に述べたように散布図が必要なのでしょうか、それともギャップがないようにX軸を変更したいのですか? – MaxU

答えて

0

あなたはこのような何かを行うことができます:ここでは

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 

は、データがどこにあるの日付なしでそれをプロットするには 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 

とデータフレームの列の一例ですNaNあなたは次のようなことをすることができます:

fig, ax = plt.subplots() 
ax.plot(range(vals.dropna().size), vals.dropna()) 
ax.set_xticklabels(vals.dropna().index.date.tolist()); 
fig.autofmt_xdate() 

enter image description here

ここにトリックはあなたが.plotメソッドを呼び出すときにmatplotlibの内部の日付の処理をトリガしない値のいくつかの範囲で日付を交換することである。このようなプロットを作成する必要があり。

プロットが完了したら、ティックラベルを実際の日付に置き換えます。 オプションで、.autofmt_xdate()を呼び出してラベルを読み取り可能にします。

関連する問題