2016-03-08 17 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