如何在 Matplotlib (Numpy) 中生成 MATLAB 图(插值)?

2023-11-30

我正在尝试遵循网格网格+插值的 MATLAB 示例。示例代码已找到HERE。在该网站上,我正在查看以下示例:示例 – 在表面上显示不均匀数据.

Now, I would like to produce a similar plot in Python (Numpy + Matplotlib) to what is shown there in MATLAB. This is the plot that MATLAB produces: enter image description here

我在 Python 中执行此操作时遇到问题。这是我在 Python 2.7 中的代码和输出:

from matplotlib.mlab import griddata
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

x = np.random.rand(200)*16 - 8
y = np.random.rand(200)*16 - 8
r = np.sqrt(x**2 + y**2)
z = np.sin(r)/r

xi = np.linspace(min(x),max(x), 100)
yi = np.linspace(min(y),max(y), 200)

X,Y = np.meshgrid(xi,yi)

Z = griddata(x, y, z, X, Y, interp='linear')

fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1,cmap=cm.jet)

Here is the result of my attempt at doing this with matplotlib and NumPy.My attempt in Numpy+Python.

有人可以帮我在 matplotlib 中重新创建 MATLAB 图(网格图或曲面图)吗?


因此,外观上的主要差异似乎与 matlab 绘制的默认行数有关,可以通过增加来调整rstride and cstride。就颜色而言,为了使颜色图正确缩放,在这种情况下最好设置限制,vmin and vmax因为当自动设置时,它会使用Z的最小值和最大值,但在这种情况下,它们都是nan,所以你可以使用np.nanmin and np.nanmax.

from matplotlib.mlab import griddata
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

x = np.random.rand(200)*16 - 8
y = np.random.rand(200)*16 - 8
r = np.sqrt(x**2 + y**2)
z = np.sin(r)/r

xi = np.linspace(min(x),max(x), 100)
yi = np.linspace(min(y),max(y), 200)

X,Y = np.meshgrid(xi,yi)

Z = griddata(x, y, z, X, Y, interp='linear')

fig = plt.figure()
ax = fig.gca(projection='3d')

surf = ax.plot_surface(X, Y, Z, rstride=5, cstride=5, cmap=cm.jet, vmin=np.nanmin(Z), vmax=np.nanmax(Z), shade=False)
scat = ax.scatter(x, y, z)

不幸的是,在 matplotlib 中,我遇到了一些烦人的重叠/“剪切”问题,其中 Axes3d 并不总是正确确定对象应显示的顺序。

example result

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

如何在 Matplotlib (Numpy) 中生成 MATLAB 图(插值)? 的相关文章

  • 两个 pandas 列的字符串连接

    我有一个关注者DataFrame from pandas import df DataFrame foo a b c bar 1 2 3 它看起来像这样 bar foo 0 1 a 1 2 b 2 3 c 现在我想要这样的东西 bar 0
  • 导入 matplotlib.pyplot 时出错

    当我跑步时import matplotlib pyplot as plt 我收到以下错误消息 ImportError Traceback most recent call last
  • Pandas hub_table 更快的替代品

    我正在使用熊猫pivot table在大型数据集 1000 万行 6 列 上运行 由于执行时间至关重要 因此我尝试加快流程 目前 处理整个数据集大约需要 8 秒 这太慢了 我希望找到替代方案来提高速度 性能 我当前的 Pandas 数据透视
  • 如何在Python中高效地添加稀疏矩阵

    我想知道如何在Python中有效地添加稀疏矩阵 我有一个程序 可以将大任务分解为子任务 并将它们分配到多个 CPU 上 每个子任务都会产生一个结果 一个 scipy 稀疏矩阵 格式为 lil matrix 稀疏矩阵尺寸为 100000x50
  • 更改 3D 图形颜色 (matplotlib)

    我使用以下代码在 matplotlib 中绘制了 3D 图形 Previously defines lists of data to plot fig plt figure ax fig add subplot 111 projection
  • Python数据描述符不能作为实例变量工作? [复制]

    这个问题在这里已经有答案了 正如官方演示中所描述的here https docs python org 2 howto descriptor html descriptor example 下面的代码将打印Retrieving var x
  • Python 中的舍入浮点问题

    我遇到了 np round np around 的问题 它没有正确舍入 我无法包含代码 因为当我手动设置值 而不是使用我的数据 时 返回有效 但这是输出 In 177 a Out 177 0 0099999998 In 178 np rou
  • 将 python2.7 与 Emacs 24.3 和 python-mode.el 一起使用

    我是 Emacs 新手 我正在尝试设置我的 python 环境 到目前为止 我已经了解到在 python 缓冲区中使用 python mode el C c C c将当前缓冲区的内容加载到交互式 python shell 中 显然使用了什么
  • 独立滚动矩阵的行

    我有一个矩阵 准确地说 是 2d numpy ndarray A np array 4 0 0 1 2 3 0 0 5 我想滚动每一行A根据另一个数组中的滚动值独立地 r np array 2 0 1 也就是说 我想这样做 print np
  • 我可以在我的机器上同时安装 python 2.7 和 3.5 的tensorflow吗?

    目前我通过 Anaconda 在我的机器 MAC OX 上安装了 Python 2 7 Python 3 5 Tensorflow for Python 3 5 我也想在我的机器上安装 Tensorflow for Python 2 7 当
  • CSS 网格框架中的间距有什么作用?

    我正在深入研究 Web 开发 并且正在使用 Blueprint CSS 框架 其中包括网格系统 我有几个问题 水沟有什么用处 当然 它们不用于在列之间包含空间 因为您可以使用 margin CSS 属性来实现这一点 对吗 或者排水沟只是一种
  • Scipy Sparse:SciPy/NumPy 更新后出现奇异矩阵警告

    我的问题是由大型电阻器系统的节点分析产生的 我基本上是在设置一个大的稀疏矩阵A 我的解向量b 我正在尝试求解线性方程A x b 为了做到这一点 我正在使用scipy sparse linalg spsolve method 直到最近 一切都
  • 如何计算Python中字典中最常见的前10个值

    我对 python 和一般编程都很陌生 所以请友善 我正在尝试分析包含音乐信息的 csv 文件并返回最常听的前 n 个乐队 从下面的代码中 每听一首歌曲都是一个列表中的字典条目 格式如下 album Exile on Main Street
  • 格式化多维数组 Python

    如何编写代码来更改多维数组中每个单独数组的值a出现负值后立即归零 所以里面的第二个数组a有负值 12 34 5 6 88 10 30 75 10 会将其所有值及其后的值转为零 将数组变成 12 34 5 6 88 0 0 0 我怎样才能获得
  • 在 python 中使用 pandas 计算行的出现次数

    我有一个包含数千行和 4 列的 pandas 数据框 IE A B C D 1 1 2 0 3 3 2 1 3 1 1 0 有没有办法统计某一行出现了多少次 例如 可以找到多少次 3 1 1 0 并返回这些行的索引 如果你只寻找一行 那么我
  • 如何计算数据框中按另一列的列值分组的一列的连续字符串值?

    我有以下数据框 Levels Labels Confidence 0 Hands 0 8 0 Leg 0 7 0 Eye 0 9 1 Ear 0 9 1 Eye 0 8 2 Hands 0 9 2 Eye 0 8 3 Eye 0 8 我想检
  • 使用 NumPy 编写一个函数来计算具有特定公差的积分

    我想编写一个自定义函数来以特定容差对表达式 python 或 lambda 函数 进行数字积分 我知道与scipy integrate quad人们可以简单地改变epsabs但我想使用 numpy 自己编写该函数 From 这篇博文 htt
  • 正在使用 PIL 保存损坏的图像

    我遇到一个问题 操作图像像素导致保存损坏的图像 因此 我使用 PIL 打开图像 然后将其转换为 NumPy 数组 image Image open myimage png np image np asarray image 然后 我转置图像
  • 使用 Python 绘制 USGS 水文数据甘特图?

    我编译了一个数据帧 其中包含几个不同流计的 USGS 流数据 现在我想创建一个类似的甘特图this https stackoverflow com questions 31820578 how to plot stacked event d
  • Python 2.7 缩进错误[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题是由拼写错误或无法再重现的问题引起的 虽然类似的问题可能是on topic help on topic在这里 这个问题的解决方式不

随机推荐

  • 为什么字典和集合中的顺序是任意的?

    我不明白如何通过 任意 顺序循环遍历 python 中的字典或集合 我的意思是 它是一种编程语言 因此该语言中的所有内容都必须 100 确定 对吗 Python 必须有某种算法来决定选择字典或集合的哪一部分 第一部分 第二部分等等 我缺少什
  • 如何从c#中的构造函数调用其他构造函数?

    我有一个像这样的构造函数 public Blah string a string b public Blah string a string b string c this a a this b b this c c 如何从第一个构造函数调
  • 在 GIT 中仅强制将一个文件作为二进制文件

    我需要将文件添加到 git 存储库 并且需要正确类型的行结尾 无论如何 我只会使用 t binary 强制文件为二进制 但我不知道如何在 GIT 中将文件设置为二进制 存储库相当大 所以我不想进行全局更改 新文件是 html 我已经有数千个
  • 子窗体跟随主窗体

    如何让子窗体跟随主窗体 例如 打开一个winform net2 winform打开form 如果mainform在移动 form会跟随mainform Use the LocationChanged来自 MainForm 的事件始终设置 C
  • iTextPDF 库 - 找不到类“com.itextpdf.text.pdf.PdfAWriter”

    在最新版本的 itextpad v5 4 0 中找不到类 com itextpdf text pdf PdfAWriter 我什至尝试下载额外的罐子 但无济于事 任何帮助将不胜感激 正如 Bruno 所说 PDF A 库位于不同的 jar
  • Java 每 n 行添加换行符

    String names new String 18 names 0 James Raider names 1 Calm Hain names 2 Ewds Ashby names 3 Gedge Taylor names 4 Hay Fi
  • Auth::attempt($credentials) 始终返回 false

    您好 我是 Laravel 新手 我正在尝试编写登录表单的功能 代码如下 这就是我创建新用户的方式 效果很好 public function action newuser email Input get email password Inp
  • 为什么这些不同的编码不允许我正确显示葡萄牙语?

    我正在做一些涉及葡萄牙语文本的文本挖掘 我的一些自定义文本挖掘函数中还包含其他特殊字符 我不是这个话题的专家 当我的很多字符开始显示不正确时 我认为我需要更改文件编码 我试过 ISO 8858 1 ISO 8858 7 UTF 8 WIND
  • 从 python 代码创建适用于 Windows 的独立可执行文件

    我有一个 python 代码 它使用 pygkt gtk ctypes os 和其他一些模块 我使用 pyinstaller 创建了代码的独立执行程序 在ubuntu上运行得很好 现在我想为Windows平台创建另一个独立的执行程序 我使用
  • Android 改造 POST ArrayList

    正在尝试发送List
  • 从 Kafka 读取时使用 KeyBy 与 reinterpretAsKeyedStream()

    我有一个简单的 Flink 流处理应用程序 Flink 版本 1 13 Flink 应用程序从 Kakfa 读取数据 对记录进行状态处理 然后将结果写回 Kafka 阅读完 Kafka 主题后 我选择使用reinterpretAsKeyed
  • 通过分组变量折叠列(以基数为单位)

    我有一个文本变量和一个分组变量 我想按因子将文本变量折叠为每行一个字符串 合并 所以只要群栏里说m我想将文本分组在一起等等 我在之前和之后提供了一个示例数据集 我正在为一个包编写此内容 到目前为止已经避免了对其他包的所有依赖 除了wordc
  • 2.7.4 上的 Python / 和 // 运算符

    我是Python新手 我开始学习基础知识 我是一名 C 人员 所以 运算符是新的东西 根据我正在读的一本书 gt gt 4 2 2 0 gt gt 2 4 0 5 gt gt 5 4 2 gt gt 2 4 0 问题是当我写的时候5 4当我
  • 修改内存区域 - 返回 0xCC VC++

    我正在修改 dll 中编译的可执行代码的某些部分 但是我正在修改的整个段中固定地址处的单个字节无法更改 甚至无法读取 代码很简单 SEGMENT DATA segInfo getSegmentInfo mHandle segmentName
  • 如何从 Angular mat-select 获取以前的和新的值?

    你好 我使用的是 Angular 6 和 agular 材料 并且我有一个字符串数组 我将其显示在垫选择表单字段中 如果用户选择一个元素 然后选择另一个元素 我需要跟踪前一个值是什么以及新值是什么 到目前为止 我已经能够使用 event v
  • 使用 XSLT 转换在 XML 中创建 xmlns 属性

    我尝试使用 JDK Transformer Oracle XML v2 Parser 或 JAXP 在 XSLT 转换期间将 xmlns 属性添加到结果 XML 并使用参数传递的值 但它始终默认为http www w3 org 2000 x
  • 如何使文本与图标字体垂直对齐?

    我有一个非常基本的 HTML 它混合了纯文本和图标字体 问题在于图标的渲染高度与文本的高度不完全相同 div class ui menu a href t class item i class large home basic icon i
  • 创建简单的 URL(.htaccess - mod_rewrite)

    我的导航有这个结构index php v page 我希望将其转换为 www domain com page 使用 mod rewrite 对此有什么想法吗 我读了一些图和例子 但无法让它正常工作 这里有一些例子 RewriteEngine
  • 如何在 Ionic 中制作开/关按钮

    我需要在 Ionic 中放置一个按钮 该按钮在按下后保持激活状态 并且仅在再次按下后才停用 有一个类似的问题 但它仅适用于图标按钮 如何添加具有离子开 离子关功能的导航栏按钮 EDIT 我无法使用切换按钮 它需要是一个常规外观的按钮 在本例
  • 如何在 Matplotlib (Numpy) 中生成 MATLAB 图(插值)?

    我正在尝试遵循网格网格 插值的 MATLAB 示例 示例代码已找到HERE 在该网站上 我正在查看以下示例 示例 在表面上显示不均匀数据 Now I would like to produce a similar plot in Pytho