2016-03-08 23 views
0

我使用下面的python腳本來繪製一些數據擺脫了線的整個圖模塊化繪製

import numpy as np 
import matplotlib.pyplot as plt 

t = np.linspace(0, 25, 501) 
plt.figure() 
plt.plot(np.mod(t, 2*np.pi), np.sin(t-np.pi/4)) 
plt.show() 

請參閱從大約運行(2 * PI,-0.7)約煩人的行(0,-0.65)?我希望能夠不顯示,而不是搞亂圖表的其餘部分。我需要這是一個二維圖,所以圓柱形繪圖不是我的選擇。我該怎麼做呢?我試圖改變linestyle,但是沒有奏效。

回答

1

問題是,您正在將mod(模數,不是模塊化)應用於您的t變量,這會迫使它的值介於0和2 * pi之間。這導致情節多次「回到」左邊(每2 * pi的倍數)。如果您刪除mod並簡單地使用t作爲因變量,則會得到以下結果。

plt.plot(t, np.sin(t-np.pi/4)) 

enter image description here

如果這不是你想要什麼,你居然希望只有你的代碼生成的部分正弦波,你可以不喜歡以下之前替換最後一個點用NaN包裹會破壞繪圖線。

tt = mod(t, np.pi * 2) 
tt[np.diff(tt) < -6] = np.nan 
plt.plot(tt, np.sin(t-np.pi/4)); 

enter image description here