【问题标题】:Matplotlib streamplot with streamlines that don't break or endMatplotlib 流线图,流线不会中断或结束
【发布时间】:2018-11-26 05:42:56
【问题描述】:

我想制作一个流线图,当它们靠得太近时,它们不会停止。我宁愿在两个方向上计算每个流线,直到它碰到窗口的边缘。结果是在某些地方它们都会混杂在一起。但这就是我想要的。

无论如何我在 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)

【问题讨论】:

    标签: numpy matplotlib plot


    【解决方案1】:

    好的,我发现我可以通过大量打开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 中似乎存在一些错误,因此start_points 关键字仅在您使用一维数组作为网格数据时才有效。见Python Matplotlib Streamplot providing start points

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-20
      • 1970-01-01
      • 1970-01-01
      • 2015-08-02
      • 2019-06-22
      • 1970-01-01
      相关资源
      最近更新 更多