Ten*_*gis 4 python numpy matplotlib
我有一些粒子在走廊中移动并具有封闭边界条件的数据.绘制轨迹会产生锯齿形轨迹.

我想知道如何阻止plot()连接点,粒子回到起点.有些东西比如图片的上半部分,但没有"."
我的第一个想法是在numpy数组a[:-1]-a[1:]获得positiv 时找到索引.然后从0到该索引的绘图.但是如何获得第一次出现正元素的指数a[:-1]-a[1:]?也许还有其他一些想法.
Tho*_*anz 13
我会采用不同的方法.首先,我不是通过查看导数的符号来确定跳跃点,因为运动可能会上升或下降,甚至可能会有一些周期性.我会看看那些带有最大衍生品的点.
其次,在绘图线中打破中断的优雅方法是在每次跳转时屏蔽一个值.然后matplotlib会自动制作片段.我的代码是:
import pylab as plt
import numpy as np
xs = np.linspace(0., 100., 1000.)
data = (xs*0.03 + np.sin(xs) * 0.1) % 1
plt.subplot(2,1,1)
plt.plot(xs, data, "r-")
#Make a masked array with jump points masked
abs_d_data = np.abs(np.diff(data))
mask = np.hstack([ abs_d_data > abs_d_data.mean()+3*abs_d_data.std(), [False]])
masked_data = np.ma.MaskedArray(data, mask)
plt.subplot(2,1,2)
plt.plot(xs, masked_data, "b-")
plt.show()
Run Code Online (Sandbox Code Playgroud)
并给我们结果:

当然缺点是你在每次休息时都会失去一分 - 但是你似乎有了采样率,我想你可以用这个来换取更简单的代码.
| 归档时间: |
|
| 查看次数: |
2709 次 |
| 最近记录: |