2014-02-21 39 views
1

我有一個這樣的數據集,其中我有一組值爲xs和我繪製的值爲ys的相應線圖。連接點爲零爲缺少點

xs = np.array([1,2,5,6,9,10,11) 
ys = pow(xs,2) 
ys 
plt.plot(xs, ys, linestyle='-', marker='o') 


plt.show() 

如果您在默認情況下注意到,圖連接點並繪製直線。但是,我想在0處畫出缺失點。我該怎麼做呢 ?我是否應該操縱數據以用零填充缺失的值(numpy,也許)還是有辦法繪製這個matplotlib.plot

準確地說,我需要繪製:xs = np.array([1,2,0,0,5,6,0,0,9,10,11,0,0,0,0]) ys = pow(xs,2) 但是,截至目前,這是我xs=np.array([1,2,5,6,9,10,11)。我如何在1:15範圍內填充缺失的元素。我看着masked_array這是不同的。 numpy中是否有其他的填充選項?

+2

究竟是什麼你想要繪製什麼?我建議只添加零點,因爲它可以在這裏工作,但取決於你想要的情節,不同的事情可能會更好。 – wbest

+0

我試圖繪製'xs'的出現頻率 - 這是'ys',所以當有一個缺失點時,它應該顯示爲零次出現。 – Learner

+1

你想做一個[直方圖](http://stackoverflow.com/questions/5328556/histogram-matplotlib)嗎? – wbest

回答

1

由於您想繪製不在數據集中的點,因此很難直接在matplotlib中執行。但是,構建點是很容易的使用put

xs = array([1,2,5,6,9,10,11]) 
ys = xs**2 

x = arange(12) 
y = zeros(12, dtype=int32) 
put(y, xs, ys) 

plt.plot(x, y, 'o', clip_on=False) 

enter image description here

+0

太棒了!這正是我正在尋找的功能。謝謝 :) – Learner