Matplotlib - 在streamplot()中使用一维数组

2024-01-07

所以我发现之前有两个类似的问题在这里问过:

当x坐标、y坐标、x速度和y速度的一维数据可用时,如何使用streamplot函数? https://stackoverflow.com/questions/33637693/how-to-use-streamplot-function-when-1d-data-of-x-coordinate-y-coordinate-x-vel

给定 X 线、Y 线、U 分量和 V 分量的一维数组,如何使用 Matplotlib 绘制流线 https://stackoverflow.com/questions/32774976/how-to-plot-streamlines-with-matplotlib-given-1-d-arrays-of-x-cords-y-cords-u

第一个问题涉及不同大小的数组(这不是我的情况,在我的示例中,X、Y、U 和 V 将始终具有相同的长度),而第二个问题确实提供了更多进展,稍后在问题中变得难以理解并且没有提供解决方案。

继续我的问题,我有 4 个一维数组、每个向量所在位置的 X 坐标和 Y 坐标,然后是每个向量各自的 U 和 V 值。我正在尝试使用streamplot将向量场(我可以在.quiver中正确可视化)可视化为流线可视化,但我遇到了制作U和V 2D的问题。我不完全理解 U 和 V 的第二个维度需要包含什么,因此任何澄清(理想情况下代码会很棒)。

我可以提供的唯一代码是我对第二个链接的实现,但这对我不起作用,因此将被废弃。


使用网格数据 http://scipy-cookbook.readthedocs.org/items/Matplotlib_Gridding_irregularly_spaced_data.html(也可以看看scipy.interpolate.griddata http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.griddata.html#scipy.interpolate.griddata)将一维数据插值到二维网格。

import numpy as np
import matplotlib.pyplot as plt
import scipy.interpolate as interpolate

# lowercase variables are 1D arrays
x = np.linspace(0, 2 * np.pi, 10)
y = np.sin(x)
u = np.cos(x)
v = np.sin(x)

# capitalized variables are 2D arrays
xi = np.linspace(x.min(), x.max(), 100)
yi = np.linspace(y.min(), y.max(), 100)
X, Y = np.meshgrid(xi, yi)
U = interpolate.griddata((x, y), u, (X, Y), method='cubic')
V = interpolate.griddata((x, y), v, (X, Y), method='cubic')

plt.figure()
plt.quiver(x, y, u, v, scale_units='xy', angles='xy', scale=1.5)
plt.streamplot(X, Y, U, V, color=U**2+V**2, linewidth=2, cmap=plt.cm.autumn)
plt.show()

import numpy as np
import matplotlib.pyplot as plt
import scipy.interpolate as interpolate

# lowercase variables are 1D arrays
x = np.array([1,2,3,4,5])
y = np.array([3,1,5,1,3])
u = np.array([1,1,0,-1,-1])
v = np.array([-0.5,1,-1,1,-0.5])

# capitalized variables are 2D arrays
xi = np.linspace(x.min(), x.max(), 100)
yi = np.linspace(y.min(), y.max(), 100)
X, Y = np.meshgrid(xi, yi)
U = interpolate.griddata((x, y), u, (X, Y), method='nearest')
V = interpolate.griddata((x, y), v, (X, Y), method='nearest')

plt.figure()
plt.quiver(x, y, u, v, scale_units='xy', angles='xy', scale=1.5)
plt.streamplot(X, Y, U, V, color=U**2+V**2, linewidth=2, cmap=plt.cm.autumn)
plt.show()

yields

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Matplotlib - 在streamplot()中使用一维数组 的相关文章

随机推荐

  • 如何求多个矩阵中对应元素的最大值?

    我有四个具有相同维度的矩阵 比方说 A 1 2 5 4 2 9 B 4 5 9 8 0 1 C 5 3 9 0 4 0 D 5 9 1 0 9 3 如何求四个矩阵中所有对应元素的最大值 在我的示例中 结果应如下所示 maxABCD 5 9
  • 如何在matlab中为条形图添加数据标签

    例如 代码 x 3 6 2 9 5 1 bar x 为此 我需要在每个栏的顶部添加数据标签 我知道我必须使用 TEXT 关键字 但我不知道如何实现它 这是一个简单的解决方案text x 3 6 2 9 5 1 bar x ylim 0 ma
  • 批量更新 Jenkins 项目的最佳方法是什么?

    我们有数百个 Jenkins 项目 大部分是从几个模板创建的 通常需要对所有项目进行相同的更改 例如今天我需要添加一个构建后步骤以在最后删除工作区 接下来 我需要更改将构建结果复制到 Nexus 存储库的共享驱动器的步骤 将此类批量更改应用
  • VSCode Intellisense 在 Javascript 代码上奇怪的自动完成

    我刚刚使用 VSCode 编写 JS 文件时遇到了一些奇怪的行为 看到我正在尝试访问hasOwnProperty 蓬松物体上的方法 VSCode 不会自动完成或建议我的代码行中的任何内容 此时我已经认为我做错了什么 并且我可能无法通过我的对
  • 使用jquery解析部分html字符串

    I use ajax 从我的服务器获取一些 HTML 页面 返回包含完整的 HTML 结果 但我只对该文档中的一个非常具体的 div 感兴趣 唯一给出的事情是我的 ajax success 函数返回一个 JSON 对象 我制作了一个 PHP
  • 如何在 Flask 中缓存大型机器学习模型?

    这是我面临的情况 我刚刚编写了一个 Flask 应用程序 人们可以输入他们想要的文本评论 我的应用程序将从我们的数据集中返回最相似的评论 所以基本上这是一个 NLP 项目 机器学习模型已经训练好了 现在的问题是该模型大约有 2 5GB 每次
  • 替换二维数组的列值中的子字符串

    我正在尝试使用str replace 删除 我的 出于value4数组数组中的元素 然而 str replace my myarray 并没有改变任何东西 Does str replace 不适用于二维数组 我的示例数据和编码尝试 arra
  • TransactionScope/SqlTransaction 超时扩展

    一旦事务开始 是否可以延长事务的超时 使用 SQL Server 超时对于 SQL Server 来说是 外部 的 因此 SQL Server 无法影响它 所以不幸的是 不
  • 如何将字典绑定到gridview?

    是否可以自动将字典绑定到 Gridview 我最接近的是 Dictionary
  • 浏览器是否跟踪活动计时器 ID?

    浏览器是否跟踪活动setInterval and setTimeout身份证 或者这完全取决于开发人员来跟踪 如果它确实跟踪它们 是否可以通过 BOM 访问 由开发人员来跟踪 您可以通过使用 setTimeout setInterval 函
  • bootstrap 3将文本内容换行在div内以进行水平对齐

    My post title here could be misleading first have a look at HTML i have currently 正如您所看到的 每一列的文本内容都会溢出到下一列 其次 它们中的每一个都不是
  • UITableViewCell 中的 UILabel 位置第一次尝试失败

    我刚刚开始接触 iOS 开发 所以我希望我能在这里获得正确的详细信息 我有一个UILabel 加载到通过 xib 创建的表格单元格中 实际上有几个标签 其中之一的长度不同 因此包装高度也不同 heightForRowAtIndexPath等
  • 为什么 jQuery UI 不隐藏具有隐藏父元素的元素?

    我一直在开发一个单页应用程序 并注意到我的下拉菜单有时在本应隐藏的情况下保持打开状态 我调查了为什么会发生这种情况 并发现如果父元素被隐藏 则使用扩展的 jQuery UI 隐藏元素hide功能毫无价值 This fiddle http j
  • 使用 rlang 创建带有双花括号 {{ 的函数(data.table 结构)

    是否可以使用 rlang 结构来执行函数data table 例如 没有数据表 library data table library dplyr iris 1 1 2 NA iris 3 3 4 NA test dt lt function
  • asynsPipe 生成 null 作为第一个值

    当在 Angular 中使用异步管道时 不会立即触发事件 http 请求或任何有延迟的可观察值 得到的第一个值是null为什么会发生这种情况 如何避免这种情况
  • 数据框的减法运算

    我有2个数据框df1 and df2 df1 lt data frame c1 c a b c d c2 c 1 2 3 4 df2 lt data frame c1 c c d e f c2 c 3 4 5 6 gt df1 c1 c2
  • Android:如何获取Fragment的视图

    在课堂上 我以编程方式添加一个片段 该片段包含一个按钮 我想要一个 onClick 实现 这是我的课程 public class ShareProduct extends SherlockFragmentActivity protected
  • 考虑在配置中定义“org.springframework.security.authentication.AuthenticationManager”类型的 bean

    我遵循了这里提到的一些建议 但它对我不起作用 因此 将问题放在这里 如何在自定义过滤器中使用 Java 配置注入 AuthenticationManager https stackoverflow com questions 2163355
  • 从 PHP 到 Java。有什么建议吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Matplotlib - 在streamplot()中使用一维数组

    所以我发现之前有两个类似的问题在这里问过 当x坐标 y坐标 x速度和y速度的一维数据可用时 如何使用streamplot函数 https stackoverflow com questions 33637693 how to use str