2017-05-17 6 views
0

次のサンプルコードを使用して時系列グラフを作成しようとしていますが、'nan'を欠損値として入力すると、プロット matplotlibを使用して時系列プロットの欠損値を渡すことができません

import matplotlib.pyplot as plot 
import numpy as np 
import datetime 

date= [[2014,01,01], [2014,02,02], [2014,03,01], [2014,04,01], [2014,05,21]] 

for i in range (len(date)): 

    dtf.append(datetime.date(int(datet[i][1]),int(datet[i][1]),int(datet[i][2])).toordinal())  

days= np.array(dtf) 

value =[ nan nan 35 nan 25] #not working 

# work fine value =[ 20 21 35 24 25] 

# not working value =[ 20 21 35 nan 25] its joins line upto 35 only 

ax.plot_date(x=days, y=value, fmt="r-") 
plot.show() 

の間では、欠損値で休憩することと次の値を継続すべき 私はラインが2点を結ぶこと

答えて

0

行う方法を教えてください。 2つの点のうちの1つがnanである場合、プロットすることはできません。したがって、点とnanの間の線は描画できません。
nanの値を持つ配列をプロットすると、両方の点が存在する線のみが表示されます。 これは基本的な論理であり、ペンと紙でデータをプロットしようとしても発生します。

import matplotlib.pyplot as plt 
import numpy as np 

nan = np.nan 
y = [2,3,2,nan,2,3,nan,3,nan,4,3,nan,2,1] 
x = np.arange(len(y)) 

fig, ax = plt.subplots() 
ax.plot(x,y, marker="o") 
ax.grid() 
ax.set_xticks(x) 
for i in x: 
    if np.isnan(y[i]): 
     ax.text(i, 1.4, "nan", ha="center", rotation=90, fontsize=16) 
plt.show() 

enter image description here

関連する問題