首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >流图提供起点

流图提供起点
EN

Stack Overflow用户
提问于 2017-05-12 03:21:01
回答 1查看 4.1K关注 0票数 2

我正试图在一个流线图中增加起点。我找到了一个使用start points 这里的示例代码;在这个链接上讨论了一个不同的问题,但是start_points参数有效。我从这里获取了流线型示例代码(images_contours_and_fields示例代码: streamplot_demo_features.py)。我不明白为什么我可以在一个代码中定义起点,而不是另一个代码。当我试图在示例代码(streamplot_demo_features.py)中定义起点时,会出现以下错误:

代码语言:javascript
复制
    Traceback (most recent call last):

  File "<ipython-input-79-981cad64cff6>", line 1, in <module>
    runfile('C:/Users/Admin/.spyder/StreamlineExample.py', wdir='C:/Users/Admin/.spyder')

  File "C:\ProgramData\Anaconda2\lib\site-packages\spyder\utils\site\sitecustomize.py", line 866, in runfile
    execfile(filename, namespace)

  File "C:\ProgramData\Anaconda2\lib\site-packages\spyder\utils\site\sitecustomize.py", line 87, in execfile
    exec(compile(scripttext, filename, 'exec'), glob, loc)

  File "C:/Users/Admin/.spyder/StreamlineExample.py", line 28, in <module>
    ax1.streamplot(X, Y, U, V,start_points=start_points)

  File "C:\ProgramData\Anaconda2\lib\site-packages\matplotlib\__init__.py", line 1891, in inner
    return func(ax, *args, **kwargs)

  File "C:\ProgramData\Anaconda2\lib\site-packages\matplotlib\axes\_axes.py", line 4620, in streamplot
    zorder=zorder)

  File "C:\ProgramData\Anaconda2\lib\site-packages\matplotlib\streamplot.py", line 144, in streamplot
    sp2[:, 0] += np.abs(x[0])

ValueError: non-broadcastable output operand with shape (1,) doesn't match the broadcast shape (100,)

我注意到在网络上使用start_points的方式并不多,所以任何其他的信息都会有帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-12 11:01:18

start_points来自matplotlib页面的示例的主要区别在于,第一个使用一维数组作为xy网格,而官方示例使用2D数组。

文献资料解释状态以来

xy:一维数组,一个间隔均匀的网格。

我们可能会坚持一维数组。目前还不清楚为什么这个例子与博士们相矛盾,但我们可以简单地忽略这一点。

现在,使用一维数组作为网格,start_points按预期工作,因为它需要一个2列数组(第一列x-弦,第二列y-共弦)。

一个完整的例子:

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt

x,y = np.linspace(-3,3,100),np.linspace(-3,3,100)
X,Y = np.meshgrid(x,y)
U = -1 - X**2 + Y
V = 1 + X - Y**2
speed = np.sqrt(U*U + V*V)

start = [[0,0], [1,2]]

fig0, ax0 = plt.subplots()

strm = ax0.streamplot(x,y, U, V, color=(.75,.90,.93))
strmS = ax0.streamplot(x,y, U, V, start_points=start, color="crimson", linewidth=2)

plt.show()

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43928767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档