2014-02-21 4 views
1

나는 xs에 대한 값 집합을 가지고 있으며 ys 값을 가진 해당 선 그래프를 그립니다.누락 된 점에 대해 점을 0으로 연결하십시오.

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으로 그려야합니다. 어떻게해야합니까? 누락 된 값을 0으로 채우기 위해 데이터를 조작해야합니까 (numpy, 어쩌면) 아니면이 값을 플로팅 할 수 있습니까? matplotlib.plot? 지금,이 내 xs=np.array([1,2,5,6,9,10,11)입니다 xs = np.array([1,2,0,0,5,6,0,0,9,10,11,0,0,0,0]) ys = pow(xs,2) 을하지만 :

는 정확히 말하면 나는 플롯 할 필요가있다. 1:15 범위에서 누락 된 요소를 어떻게 채 웁니까? 나는 masked_array을 보았다. numpy에 다른 채우기 옵션이 있습니까?

+2

? 여기서는 작동 할 것이므로 0을 추가하는 것이 좋을 것입니다. 그러나 여러분이 무엇을 하려는지에 따라, 다른 것들이 더 잘 작동 할 수도 있습니다. – wbest

+0

필자는'xs'의 출현 빈도를 플롯하려고합니다. 즉,'ys'입니다. 따라서 누락 된 점이있을 경우 0 번으로 표시해야합니다. – 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

관련 문제