Matplotlib streamplot具有不会破坏或结束的流线型

时间:2018-06-16 20:23:48

标签: numpy matplotlib plot

我想制作一个带有线条的streamplot,这些线条在它们靠得太近时不会停止。我宁愿在两个方向上计算每个流线,直到它到达窗口的边缘。结果是有些地方他们都混乱了。但这就是我想要的。

我还有在matplotlib中这样做?如果没有,我可以使用另一个可以与python / numpy接口的工具吗?

import numpy as np
import matplotlib.pyplot as plt
Y,X = np.mgrid[-10:10:.01, -10:10:.01]
U, V = Y**2, X**2
plt.streamplot(X,Y, U,V, density=1)
plt.show(False)

Stream plot example

1 个答案:

答案 0 :(得分:2)

好的,我已经发现我可以通过调整density并使用自定义起点来获得我想要的大部分内容。如果有更好或替代的方法,我仍然感兴趣。

这是我的解决方案。它看起来好不好?

import numpy as np
import matplotlib.pyplot as plt
Y,X = np.mgrid[-10:10:.01, -10:10:.01]
y,x = Y[:,0], X[0,:]
U, V = Y**2, X**2
stream_points = np.array(zip(np.arange(-9,9,.5), -np.arange(-9,9,.5)))
plt.streamplot(x,y, U,V, start_points=stream_points, density=35)
plt.show(False)

Streamplot example

编辑顺便说一下,streamplot似乎存在一些错误,只有当您使用1d数组作为网格数据时,start_points关键字才有效。见Python Matplotlib Streamplot providing start points