删除等值线图上的边缘线

2024-03-10

我用Matlab创建了一个极坐标并将其转换为笛卡尔坐标。

[th,r] = meshgrid((0:0.5:360)*pi/180,0:.02:1);
[X,Y] = pol2cart(th,r);

我获取该网格上的数据并生成contourf绘制它。

我的问题是我在轮廓图中得到一条中心线,我想将其删除,有人可以帮助我吗

谢谢


如果我稍微扩展一下你的例子来得到一些我可以绘制的东西,我确实会重现这个问题:

[th,r] = meshgrid((0:0.5:360)*pi/180,0:.02:1);
[X,Y] = pol2cart(th,r);
Z = sqrt( X.^2 + Y.^2 ) ;

isoLevel = 0:0.1:10 ;
[C ,hc] = contourf(X,Y,Z,isoLevel) ;

界面上的黑线是因为函数contourf create patch对象,并且这些对象倾向于“闭合”自身(它们将在其配置文件中定义的第一个点和最后一个点之间创建一条线)。

如果您没有完成超过 360 度的轮廓定义,则更容易观察到这一点。右图显示了相同的示例,但网格仅来自0:350并与LineStyle set to :.

正如您所看到的,很难控制 Matlab 如何实际渲染这个特定的配置文件限制。有一些方法可以控制特定的边缘patch对象,但在这种情况下,它将涉及检索每个补丁对象的句柄(在我的例子中为 10 个,但在更复杂的情况下更多),找到要控制的边缘并基本上重新定义补丁(每个补丁)。您最好自己从头开始绘制补丁。


幸运的是,有一个简单的方法可以解决这个问题:去掉所有的补丁边缘线......

但这样你可能会错过你的等值线!没问题,只需将它们绘制在补丁之上即可! 您将获得所有彩色补丁(无边框)和一组(iso)您可以完全控制的线路。

两种简单的方法让您无需线条即可进行修补(i)将阴影设置为shading flat,或 (ii) 指定'EdgeColor','none'在参数中contourf功能。

为了让等值线位于顶部,请使用姐妹contour功能。

所以使用相同的X,Y and Z数据比之前:

isoLevel = 0:0.1:10 ;
[C ,hc] = contourf(X,Y,Z,isoLevel,'EdgeColor','none') ;  %// set of patches without border
% shading flat %// use that if you didn't specify ('EdgeColor','none') above
hold on
[C2 ,hc2] = contour(X,Y,Z,isoLevel,'LineColor','k') ;    %// now get your isolines

将呈现:

存放手柄是个好主意hc2如果您想修改等值线属性(颜色、样式、厚度等...)。

此外,建议指定等值线水平。这样您就可以确保两者contour and contourf将使用同一组等值。如果没有这个,它可能也可以工作(因为底层数据集是相同的),但就我个人而言,我总是更喜欢明确的而不依赖于后台计算。

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

删除等值线图上的边缘线 的相关文章

  • 按元素出现的频率对数组元素进行排序

    是否可以在 matlab octave 中使用sort函数根据元素的相对频率对数组进行排序 例如数组 m 4 4 4 10 10 10 4 4 5 应该产生这个数组 5 10 10 10 4 4 4 4 4 5是出现频率较低的元素 位于顶部
  • MATLAB 中最有效的矩阵求逆

    在 MATLAB 中计算某个方阵 A 的逆矩阵时 使用 Ai inv A should be the same as Ai A 1 MATLAB 通常会通知我这不是最有效的求逆方法 那么什么是更有效率的呢 如果我有一个方程系统 可能会使用
  • 在另一列中添加具有特定条件的一列,如 excel 的 sumif

    我有一个像这样的矩阵 A 1 2 2 3 3 4 4 5 5 6 6 8 7 9 8 5 9 4 现在我想添加第二列 条件是如果 limit 0 interval 3 且 limit limit interval 或者换句话说 当第 1 列
  • Matplotlib:检查空图

    我有一个循环加载并绘制一些数据 如下所示 import os import numpy as np import matplotlib pyplot as plt for filename in filenames plt figure i
  • 句柄类和值类的区别

    我有一些 C 背景 想使用 Matlab 中的类 句柄和值类有什么区别 我知道如果我想定义一个带有重载运算符 例如 和 的矩阵类 我会使用值类 然而 有时 当我选择一个手柄类时 事情似乎只对我有用 MathWorks 提供了一些有关其用途的
  • 在 MATLAB 中重命名文件

    我正在尝试以编程方式重命名工作目录中的文件a temp txt to b hello txt 您建议如何这样做 MATLAB中有一个简单的文件重命名函数吗 我认为您正在寻找 MOVEFILE
  • 如何在 Matlab 中将数组打印到 .txt 文件?

    我才刚刚开始学习Matlab 所以这个问题可能非常基本 我有一个变量 a 2 3 3 422 6 121 9 4 55 我希望将值输出到 txt 文件 如下所示 2 3 3 422 6 121 9 4 55 我怎样才能做到这一点 fid f
  • Matlab:如何更改矩阵的存储方式?从 1x1x3 到 1x3?

    我目前有 val 1 0 7216 val 2 0 7216 val 3 0 7216 但我想要 0 7216 0 716 0 721 我可以做什么样的操作来做到这一点 The reshape函数将在这里解决问题 Arrange the e
  • 使用符号求解器仅求解某些变量

    我正在尝试在 MATLAB 中求解包含 3 个变量和 5 个常量的方程组 是否可以使用solve求解三个变量 同时保持常量为符号而不用数值替换它们 当您使用SOLVE http www mathworks com access helpde
  • 如何告诉 mex 链接到 /usr/lib 中的 libstdc++.so.6 而不是 MATLAB 目录中的 libstdc++.so.6?

    现在 MATLAB 2012a 中的 mex 仅正式支持 gcc 4 4 6 但我想使用 gcc 4 7 风险自负 现在如果我直接用 mex 编译一些东西 它会抱怨 usr lib gcc i686 linux gnu 4 7 cc1plu
  • matlab中的排列函数是如何工作的

    这是一个有点愚蠢的问题 但我似乎无法弄清楚排列在 matlab 中是如何工作的 以文档为例 A 1 2 3 4 permute A 2 1 ans 1 3 2 4 到底是怎么回事 这如何告诉 matlab 3 和 2 需要交换 哇 这是我迄
  • 如何找到平面和 3d 矩阵之间的交平面

    如果我有一堆图像并且尺寸如下 size M 256 256 124 我有 3 个点 它们的坐标是 coor a 100 100 124 coor b 256 156 0 coor c 156 256 0 如何创建 M 与这 3 个点定义的平
  • MATLAB 中的霍夫变换

    有谁知道如何使用霍夫变换来检测二值图像中最强的线 A zeros 7 7 A 6 10 18 24 36 38 41 1 使用 rho theta 格式 其中 theta 以 45 为步长 从 45 到 90 以及如何在 MATLAB 中显
  • ROC曲线和libsvm

    给定一条 ROC 曲线plotroc m see here http www csie ntu edu tw cjlin libsvmtools roc curve for binary svm 理论问题 如何选择要使用的最佳阈值 编程问题
  • @(t)在Matlab中是什么意思? [复制]

    这个问题在这里已经有答案了 正如标题所示 考虑到下面的上下文 t 在 Matlab 中到底意味着什么 computeNumericalGradient 是一个函数 cofiCostFunc 也是一个接受一堆参数的函数 问题是 t 对 cof
  • 检测数据集中线性行为的算法

    我已经发布了一个关于对数据集的一部分进行多项式拟合的算法 https stackoverflow com q 17595932 2320757前一段时间收到一些建议去做我想做的事 但我现在面临另一个问题 我尝试应用答案中建议的想法 我的目标
  • Matlab dec2bin 给出错误的值

    我正在使用 Matlab 的 dec2bin 将十进制数转换为二进制字符串 但是 我得到了错误的结果 例如 gt gt dec2bin 13339262925365424727 ans 101110010001111010010100111
  • Matlab Builder JA - 将 Matlab 编译成 Java jar - 免费版本?

    请记住 我对 Matlab 一无所知 Matlab Builder JA 允许开发人员构建 Matlab 应用程序并将其导出到 Java jar 中 太棒了 我只需要生成一个 jar 然后就可以从其他 java 代码中使用它 有谁知道单罐包
  • MATLAB 类的 Description 和DetailedDescription 属性

    内置 MATLAB 类具有 Description 和 DetailedDescription 属性的值 gt gt handle ans meta class handle Package meta Properties Name han
  • 如何知道Matlab中系统命令执行过程中经过的时间?

    我有一个运行系统脚本的 Matlab 代码 该脚本可能会因命令运行而停止 我想知道是否有一种方法可以让程序知道它是否花费了很长时间并执行其他操作 这是代码 tic status cmdout system iperfcmd The prog

随机推荐

  • 使用 Datagridview C# 进行多线程处理

    这里我正在做一个检查用户名的过程 我创建了一个 datagridview 并从文本文件加载了数据 因此 datagridview 在前两列中包含用户的名字和姓氏 我需要做的是逐行读取这些值 并发现第一个和最后一个没有相同的名称 这些操作是在
  • 当你没有 Linq 时像 Linq 一样查询

    我目前正在开发一个项目 但它目前仅支持 net Framework 2 0 我喜欢linq 但由于框架版本的原因我无法使用它 我想要的并不是 ORM 方面的东西 而是 Linq 的 可查询性 这甚至是一个词吗 到目前为止最接近的是llblg
  • Laravel 无法连接到数据库

    我正在跟踪快速入门指南 http laravel com docs quick displaying data 并到达实际连接到数据库以获取用户表的部分 并收到以下错误 SQLSTATE 28000 1045 用户 root localho
  • a、&a 和 &a[0] 之间的类型区别是什么?

    include
  • 如何从 Dom4j Node.selectObject 或 Node.selectNodes 获取字符串列表

    希望你有美好的一天 Dom4j javadoc 表单Node selectObject String xpathExpression 说如下 返回的对象可以是一个或多个 Node 实例的列表 也可以是标量对象 例如String或 Numbe
  • TortoiseHg 更新后 Mercurial 无法工作

    我最近将 TortoiseHg 更新到 2 0 3 使用 Mercurial 1 8 2 更新后 Mercurial 不再通过命令行 Windows 7 x64 运行 但可以通过 TortoiseHg GUI 运行 尝试通过命令行使用任何
  • 如何从 Instagram API 获取历史数据

    我正在制作一个 Instagram 分析网络应用程序 我仔细阅读了所有 Instagram API 端点 但找不到任何方法来获取历史数据 即一段时间内的关注者 我所需要的只是一个类似日期的东西 附加到每个关注者对象上 不过 有一些 Inst
  • 如何控制rpmbuild的buildroot和安装目录

    我对 rpmbuild 中的一些目录感到困惑 1 buildroot 用于存储最终用户安装二进制包时应安装的文件 问题 如何控制这个目录 构建根是什么意思 cat 3 spec BuildRoot opt abc prep echo bui
  • 数字轴 setTickUnit 包含指定数字

    我使用 JFreeChart 显示正态分布 并将刻度数更改为标准差 但我也希望在刻度出现的中间始终存在 平均 值 交叉发布 所以标准差 2 平均值 1 3 1 1 3 5 标准差 5 平均值 15 0 5 10 15 20 25 30 JF
  • 递归 - 如何生成给定 n 和 k 的所有序列

    给定 n 和 k 我需要生成以下所有序列 n 5 k 2 0 1 2 0 1 3 0 1 4 1 2 3 1 2 4 2 3 4 另一个例子 n 5 k 3 0 1 2 3 0 1 2 4 0 1 3 4 0 2 3 4 1 2 3 4 我
  • 如何实现自动生成id的功能?

    我尝试创建一个函数来在 sql 表中生成 id 但我不知道如何设置选择表和列的参数 请帮助我 Public Function autoid ByVal col As String ByVal txt As TextBox ByVal tb
  • 使用具有作用域在函数内部的匿名类的模板

    假设我有以下片段 template
  • 如何在ListView中插入对象类型?

    我想在 ListView 中维护 ID 和对象类型 我正在尝试这样做 lstView Items Insert MyObject can t do this because it takes only Int and String 就我而言
  • 使用 Jelly Bean 的简单安全配对(蓝牙)与 NFC 配对

    截至 io2012 和JellyBean 文档 http www android com about jelly bean 现在有一种通过 NFC 配对蓝牙设备的方法 这听起来确实不错 但我找不到任何有关它的文档 我特别想知道这是否适用于不
  • Python:从图像中删除 Exif 信息

    为了减小网站中使用的图像大小 我将质量降低到 80 85 这在一定程度上大大减小了图像尺寸 为了在不影响质量的情况下进一步减小尺寸 我的朋友指出 来自相机的原始图像有很多称为 Exif 信息的元数据 由于网站中的图像不需要保留此 Exif
  • iOS Geofence CLCircularRegion 监控。 locationManager:didExitRegion 似乎没有按预期工作

    我目前正在尝试让我的应用程序使用以下方式监视特定区域CoreLocation然而我发现它似乎没有按预期工作 在我看来 它不能在每个位置设置较小的小半径 即 10m 的情况下工作 我还制作了一个小测试应用程序 它绘制了圆半径在地图上 这样我就
  • 包含文件存储在哪里 - Ubuntu Linux、GCC

    因此 当我们执行以下操作时 include
  • 如何检查 numpy 数组是否已经存在?

    我想知道数组是否已经在代码中的某个位置定义过 就像是a exist 如果存在则给出 True 如果不存在则给出 False I tried a size 但是如果该数组尚不存在 它会给出一条错误消息 这是我想避免的 如果您想知道的话 要求这
  • 如何更改ionic 2本地推送通知图标?

    我使用创建了一个混合应用程序ionic2因为我正在使用科尔多瓦本地推送通知 一切都工作正常 唯一的问题是无法更改图标 在下面我将我的代码粘贴到这里 LocalNotifications schedule id 1 title Test Ti
  • 删除等值线图上的边缘线

    我用Matlab创建了一个极坐标并将其转换为笛卡尔坐标 th r meshgrid 0 0 5 360 pi 180 0 02 1 X Y pol2cart th r 我获取该网格上的数据并生成contourf绘制它 我的问题是我在轮廓图中