boundedline.m

用阴影边界绘制一条或多条线(可以表示误差、置信区间等)。

27.6 k下载

更新2021年9月23日

从GitHub

在GitHub上查看许可证

编者按:此文件被选为MATLAB Central本周精选

boundedline.m:行with shaded error/confidence bounds

作者:Kelly Kearneyboundedline视图。m在文件交换

类的代码boundedline.mMatlab函数及配套outlinebounds.m函数,以及运行它们所需的所有依赖函数。

boundedline函数允许用户轻松地用阴影补丁围绕它绘制和对齐。这种类型的图通常用来表示不确定的区间或误差范围围绕一条线。

内容

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

开始

先决条件

此函数要求Matlab R14及以上版本。

下载安装

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

Matlab搜索路径

以下文件夹需要添加到您的Matlab搜索路径(通过目录pathtool等):

boundedline-包裹/Inpaint_nans boundedline-包裹/boundedline boundedline-包裹/catuneven boundedline-包裹/singlepatch

语法

有界线(x, y, b)用给出的坐标绘制一条直线x而且y,周围是一片延伸一定距离的斑块b在那条线以上/以下。的尺寸xy,b数组可以变化以允许同时绘制多条线,并且补丁边界可以是恒定的或沿着线的长度变化。有关这些变化的详细信息,请参阅函数头帮助。

boundedline(…“α”)使用部分透明贴片将有界区域贴片渲染为与相应线条相同的颜色。如果没有包含,有界区域将使用一个完全不透明的补丁,在相应的线条颜色的浅阴影中。

boundedline(…,'透明度',transp)指示边界补丁的透明度或强度,使用0到1之间的标量。默认值是0.2。

boundedline(…,'取向',或ient)指示边界的方向。方向可以是“绿色”对于垂直(y方向)边界,或“水平的”对于水平(x方向)边界。默认是“绿色”

boundedline(…,'南',南flag)指示边界补丁应该如何处理行坐标或边界值中的nan。选项是“填满”,使用相邻值来平滑差距,“差距”在这些点上留下空白,或者“删除”完全丢弃nan点,导致补片间隙的线性插值。有关这些选项的详细信息,请参阅下面的示例。

boundedline(…, 'cmap', cmap)根据这个nx3颜色映射数组中的颜色为线条上色(按绘制顺序),覆盖任何linespec或默认颜色。

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

[hl, hp] = boundedline(…)返回结果行和补丁对象的句柄。

Hout = outlinebounds(hl, hp)为生成的边界补丁添加轮廓boundedline,返回结果行对象的句柄胡特

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

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

这个示例构建了MatlabCentral File Exchange上使用的4个面板示例图像,其中显示了几种提供线坐标、边界坐标和阴影选项的不同方法。

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

xlinspace02*π50);日元(x);y2因为(x);e1兰德大小(日元))*.5+.5;e2二十五分.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或默认的颜色顺序,还不如使用colormap数组来分配颜色。在这种情况下,在同一行上添加越来越窄的边界。

斧头4次要情节224);boundedline(x,repmat(日元41),交换0.5:-0.10.2, (3.12),……提出很酷的4),…透明度0.5);标题使用颜色映射的多个边界);斧头([124]),xlim, (02*π]);斧头3.),ylim, (02*π]);

例2:填空

如果您绘制一条线,其中一个或多个nanxy向量,NaN位置被渲染为一行中缺少一个空白的标记。然而,补丁命令不能优雅地处理nan;如果任何坐标包含nan,它根本无法显示补丁。

正因为如此,当遇到边界数组(b)或直线的x/y坐标(用于计算补丁坐标)是不明确的。我提供了一些选择。

在我演示这些选项之前,我将创建一个数据集,其中有一些不同类型的间隙:

xlinspace02*π50);y(x);b大小(y)) *0.2兰德大小(y)) *.5+.5y10NaN在直线上,但没有边界b20.1NaN在下界,但不在直线上b30.2NaN在上界,但不在直线上b40NaN在边界的两边,但不是线

下面是错误条图的样子。

图;他errorbar(x, y,b1),b2),);([x([1020.30.40]);x([1020.30.40])]、[14) * -214)*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);(ho),线型颜色r标记);

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

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

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

最后一个选项从补丁中删除属于nan的点。视觉结果与填充选项非常相似,但如果绘制边界轮廓,则会明显地发现缺失的点。

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

贡献

欢迎社区对这个软件包做出贡献!

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

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

也请随时提交增强请求,或发送拉请求(通过GitHub)以修复错误或新功能。

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

MATLAB R2016b发布

引用作为

凯利·科尔尼(2023)。boundedline.mGitHub (https://github.com/kakearney/boundedline-pkg)。检索

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

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!

Inpaint_nans

Inpaint_nans /演示

Inpaint_nans /医生

Inpaint_nans /测试

boundedline

catuneven

singlepatch

无法下载使用GitHub默认分支的版本

版本 发表 发布说明
1.4.0.1

链接GitHub自述程序

1.4.0.0

更新README文件和FEX描述。
链接到GitHub的条目

1.3.0.0

R2014b图形更新

1.2.0.0

根据用户请求,函数现在在边界补丁中跨nan插值。

1.1.0.0

outlinebounds补充道。M函数允许对补丁对象进行轮廓化(在使用不透明边界时,可以用于查看重叠)。

1.0.0.0

要查看或报告此GitHub插件中的问题,请访问GitHub库
要查看或报告此GitHub插件中的问题,请访问GitHub库