图片缩略图

边界线

版本1.4.0.1(497KB)由 凯利卡尼
绘制一条或多条带有阴影边界的线(可以表示误差、置信区间等)。

26 k下载

更新2021年9月23日

来自GitHub

在GitHub上查看许可证

编者按:这个文件被选为MATLAB中心推荐商品

boundedline.m:具有阴影错误/置信边界的线

作者:凯利卡尼boundedline视图。文件交换

此存储库包括边界线Matlab函数及其实现outlinebounds.m函数,以及运行它们所需的所有依赖函数。

boundedline功能允许用户轻松地绘图和线与阴影补丁周围。这种类型的绘图通常用于指示线周围的不确定性区间或误差边界。

内容

  • 开始
  • 语法
  • 示例1:使用各种语法选项绘制行
  • 示例2:填补空白
  • 贡献

开始

先决条件

这个函数需要Matlab R14或更高版本。

下载和安装

此代码可以从github或者是MatlabCentral文件交换.文件交换条目每天都会从GitHub存储库中更新。

Matlab搜索路径

需要将以下文件夹添加到Matlab搜索路径(通过目录路径工具等):

boundedline-包装/Inpaint_nans boundedline-包装/boundedline boundedline-包装/不均匀边界线-包装/singlepatch

语法

boundedline (x, y, b)用以下公式给出的坐标绘制直线:xy,周围是一块延伸一定距离的斑块b高于/低于那条线。系统的尺寸xy,b阵列可以变化,以允许同时绘制多条线,面片边界可以是常量,也可以沿线的长度变化。有关这些变体的完整详细信息,请参阅函数标题帮助。

边界线(…,'alpha')使用与相应线条颜色相同的部分透明面片渲染有界区域面片。如果未包括在内,则有界区域将使用具有相应线条颜色较浅阴影的完全不透明面片。

边界线(…,“透明度”,传输)指示边界补丁的透明度或强度,使用介于0和1之间的标量。默认是0.2。

边界线(…,“方向”,方向)指示边界的方向。方向可以是“绿色”对于垂直(y方向)边界,或“水平的”用于水平(x方向)边界。默认值为“绿色”

boundedline(…,'南',南flag)指示边界补丁应如何处理线坐标或边界值中的nan。选项是“填满”,以使用相邻值平滑间隙,“差距”在这些点的修补程序中留下空白,或“删除”完全去掉nan点,导致贴片缝隙的线性插值。有关这些选项的更多细节,请参阅下面的示例。

boundedline(…、“提出”提出)根据这个nx3颜色映射数组中的颜色给线条上色(按绘图顺序),覆盖任何线条或默认颜色。

boundedline(…ax)将有界线绘制到由句柄指示的轴上斧头. 如果未包括,则使用当前轴。

[hl, hp] = boundedline(…)返回结果线和面片对象的句柄。

hout=轮廓边界(hl,hp)将轮廓添加到生成的边界补丁boundedline,返回结果行对象的句柄霍特

两个函数的所有输入和输出变量的详细信息都可以通过帮助函数。

示例1:使用各种语法选项绘制行

这个示例构建了MatlabCentral文件交换中使用的4个面板示例图像,它展示了几种提供线坐标、边界坐标和阴影选项的不同方法。

第一个轴使用LineSpec输入选项绘制两条线,该选项允许您为每条线设置线颜色、线颜色和标记类型。第一行的边界在x上变化,而第二行的边界对所有x都是不变的。在边界上添加一个轮廓,以便更清楚地看到重叠区域。

x邻域02圆周率50);y1(x) ;y2因为(x) ;e1兰德大小(日元))*.5+.5; e2.25.5];斧头1次要情节221); [l,p]boundedline(x, y₁,e1,- b *x y2 e2,——罗);outlinebounds(l p);标题不透明边界,带有大纲);

对于我们的第二个轴,我们使用相同的两条线,这次为这两条线指定x变化的边界。本例不使用LineSpec语法,而是使用默认颜色顺序来指定线和面片的颜色。我还打开了“α”选项,该选项以部分透明的方式呈现补丁。

斧头2次要情节222);boundedline(x,[y1;y2],兰德长度(日元)22)*.5+.5α);标题透明的界限);

对于x轴表示因变量的情况,边界也可以指定为水平方向。在本例中,标量误差界限值适用于两条线和线的两边。

斧头3.次要情节223.);boundedline((y1, y2), x,e11),取向霍利斯标题水平边界);

可以使用颜色映射数组来分配颜色,而不是使用LineSpec或默认的颜色顺序。在这种情况下,越来越窄的边界被添加到同一行上。

斧头4次要情节224);boundedline(x,repmat(y1,41),排列0.5:-0.10.2, (3.12),……cmap很酷的4),…透明度0.5);标题使用颜色映射的多个边界);斧头([124]),xlim, (02圆周率]);斧头3.),叶利姆, (02圆周率]);

示例2:填补空白

如果绘制一条线,其中有一个或多个nanxy向量时,NaN位置将呈现为一行中有空白的缺失标记。然而,色斑命令不能优雅地处理NAN;如果任何坐标包含NAN,它根本无法显示面片。

因此,boundedline的面片部分在bounds数组中遇到NaN时的预期行为(b)或直线的x/y坐标(用于计算patch坐标)是模糊的。我提供了几个选择。

在我演示选项之前,我将创建一个数据集,它有一些不同类型的空白:

x邻域02圆周率50);y(x);b一个大小(y) )*0.2兰德大小(y) )*.5+.5y10NaN在线内,但没有边界b201NaN在下界,而不是线b302NaN在上界,但不是线b40NaN在界的两边而不是线

下面是errorbar图中的情况。

错误条(x,y,b1),b2),);([x([10203040]);x([10203040])]、[一个14)*-2一个14)*2], ...颜色一个13.)*0.5线型);文本x10),x10))-0.2, {\向上光标键缺口},绿色霍利斯居中);文本x20),x20))-0.2, {\向上光标键降低绑定缺口},绿色霍利斯居中);文本x30),x30))-0.2, {\向上光标键绑定缺口},绿色霍利斯居中);文本x40),x40))-0.2, {\向上光标键双面的绑定缺口},绿色霍利斯居中);严格相等

处理boundedline中的NaN的默认方法是保留线中的间隙,但基于相邻点平滑边界中的间隙。如果您只缺少一个或两个点,并且您不想在绘图中强调这些间隙,则此选项会很好:

删去(他);(hl、惠普)boundedline(x, y, b,填满);何outlinebounds惠普(hl);(何),线型颜色r标记);

我用对比色添加了边界轮廓,这样你就可以看到我是如何处理单个点的。

第二个选项为任何NaN在修补程序中留下完整的间隙。我考虑过允许单边间隙,但想不出区分间隙和零值界的好方法。如果你有任何建议,我愿意接受(给我发电子邮件)。

删去([hl hp ho]);[hl,hp]boundedline(x, y, b,缺口);何outlinebounds惠普(hl);(何),线型颜色r标记);

最后一个选项从补丁中删除nan点。视觉效果与填充选项非常相似,但如果您绘制边界轮廓,那么遗漏的点是明显的。

删去([hl hp ho]);[hl,hp]boundedline(x, y, b,删除);何outlinebounds惠普(hl);(何),线型颜色r标记);

贡献

欢迎社区对本包的贡献!

要报告错误,请提交一个问题在GitHub,包括:

  • 您的操作系统
  • 你的Matlab版本和所有相关工具箱(类型版本在Matlab命令行中获取此信息)
  • 用于再现错误或错误行为的代码/数据,以及收到的任何错误消息的全文

请随时提交增强请求,或发送请求(通过GitHub)以修复bug或获得新功能。

我确实监控MatlabCentral FileExchange条目,以查看评论中提出的任何问题,但更喜欢跟踪GitHub上的问题。

与MATLAB R2016b一起发布

引用为

凯利·卡尼(2021年)。边界线(https://github.com/kakearney/boundedline-pkg),GitHub。恢复

MATLAB版本兼容性
使用R2007b创建
与任何版本兼容
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!

Inpaint_nans

修复/演示

Inpaint_nans /医生

修复/测试

boundedline

catuneven

singlepatch

要查看或报告这个GitHub插件中的问题,请访问GitHub存储库
要查看或报告这个GitHub插件中的问题,请访问GitHub存储库