图片缩略图"itemprop=

notBoxPlot

版本1.31.0.0 (15.7 KB 罗伯•坎贝尔
该函数可视化原始(分组)数据以及平均值、95%置信区间和1 SD。
4.9
51评级

83下载

更新2020年10月19日

从GitHub

查看版本历史

在GitHub上查看许可证

编者按:该文件被选为MATLAB中央本周精选

虽然盒状图也有自己的位置,但有时看到所有数据比用汇总统计数据(如四分位间范围)隐藏它们更好。这个函数(有一个开玩笑的名字)解决了这个问题。用平均数代替中位数,用SEM和SD代替四分位数和须是有意的。每组的原始数据都被绘制出来。还显示了平均值和平均值的95%置信区间。这种绘图风格被设计用来与参数检验(如方差分析和t检验)一起使用。将抖动数据与误差条进行比较,可以直观地显示是否违反了统计检验的正态性假设。此外,它允许人们通过观察数据来寻找均值之间的显著差异(不重叠的置信区间表示在所选的p值处存在显著差异,此处为5%)。还看到:http://jcb.rupress.org/cgi/content/abstract/177/1/7最后,还显示了1 SD。注意,如果数据不是正态分布的,那么这些统计数据就没有意义。
该函数有几个例子,除了上面截图中显示的那些,还有各种可视化的可能性。例如,彩色区域可以用线条代替。
虽然它在我需要它的情况下工作得很好,但如果用户遇到问题,我很乐意修改该功能。
2017年3月的新功能:
接受线性模型对象作为y变量;接受Table对象作为y变量;示例现在在独立文件中;删除遗留的调用格式;当X变量未被使用时,不需要定义为空

更多细节请参见GitHub页面。

引用作为

罗伯·坎贝尔(2021年)。notBoxPlotGitHub (https://github.com/raacampbell/notBoxPlot)。检索

评论及评分(122

静夏

对于“未定义函数或变量'NBP.SEM_calc'”的错误。
您应该将包含notBoxPlot的整个+NBP文件夹复制到一个文件夹中。如果删除+NBP文件夹,即使复制了附属函数,它也无法工作

约书亚·布伦纳

伽柏Remzso

亲爱的罗伯,

谢谢,很好的代码。我们实验室在最新的科学论文中引用了你。您可以在方法部分找到它。
https://www.mdpi.com/1422-0067/21/18/6801
非常感谢!

伽柏

塞巴斯蒂安。

罗伯•坎贝尔

该函数可选地返回所有绘图对象的句柄。你可以用它在绘制完图后删除这些点。

有没有办法完全去掉这些点?
谢谢

伽柏Remzso

约书亚·布伦纳

谢谢你,非常好的文档和模块化

JCanal

效果很好。做得好!

Theoklitos Amvrosiadis

罗伯•坎贝尔

你试过轴的'XTick'和'XTickLabel'属性吗?

Izumi de los Rios Kobara

除了x轴值之外,还有什么方法可以标记数据分组吗?

Haleh soleimanzad

洁具他

阿米莉亚Kowalewska

Avgoustinos Vouros

罗伯•坎贝尔

听起来好像你的路径中没有+NBP目录。

Sadia Afrin

嗨,抢劫,

我试图做同样的事情,但它给出以下错误信息:
"未定义函数或变量'NBP.SEM_calc'。

notBoxPlot/myPlotter错误(第349行)
SEM = intervalFun (Y);提供的外部函数的函数句柄

notBoxPlot中的错误(第315行)
[hTemp, statsTemp] = myPlotter (x (f), y (:, f));

你能给我一些建议吗?谢谢,
Sadia

Sadia Afrin

嗨,罗伯,当我使用相同的命令时,我得到以下错误消息。
"未定义函数或变量'NBP.SEM_calc'。

notBoxPlot/myPlotter错误(第349行)
SEM = intervalFun (Y);提供的外部函数的函数句柄

notBoxPlot中的错误(第315行)
[hTemp, statsTemp] = myPlotter (x (f), y (:, f));“

你能给我解释一下为什么会发生这种事吗?你在这方面的帮助将非常值得赞赏。

这是一个很棒的代码。非常感谢!

Hanieh BME

我找到了答案。我考虑了一个向量和南。谢谢你的工具箱很有趣

Hanieh BME

H=notBoxPlot(vecsys(:,ii),ii,'markMedian',true,'jitter',0.6,'style', 'sdline')

Hanieh BME

谢谢你,亲爱的罗伯,你能告诉我,在你创建的8个图中,我是否想画前4个和一个空白距离,而其他4个(与你的例子[1:4,6:10]相同),我应该在你之前的评论交换中写的代码中添加什么?
最好的

罗伯•坎贝尔

如。
clf
抓住
2 = 1:8;notBoxPlot(兰德(1、2 * 10),2),结束

Hanieh BME

你好抢劫,我还是不能和你有趣的工具箱时情况如下:A =(1 2 3 4 5)(五行),B =[4 4 5 7](四元素)等等庇护想让这两个之间的距离(抖动),我不能设法画你画的例子但“向量与不同的样本大小相同的面板”(你总是珠江口兰德(x, 5)因此,样品都是一样的。你在之前的评论中说的解决方案没有工作,因为它把所有的图形组合在一个框图中,而不是例如,在同一个面板中有抖动的3个不同矢量大小的框图。你有它喜欢的代码示例吗?谢谢

罗伯•坎贝尔

看到NBP.showCase。简单地说:你clf,按住,notBoxPlot(…),notBoxPlot(…),按住

Hanieh BME

你好,我正在工作的组有不同的大小,它似乎能够使用你的功能,我需要相同的大小元素。你有什么解决办法吗?

谢谢

威廉Sadeghi

传说

罗伯•坎贝尔

在notBoxPlot命令后添加“hold on”。

小常

嗨,抢劫,
谢谢你漂亮的工具箱。我有一个问题与绘图多次notBoxPlot在图上。hold on命令似乎不起作用,并且数字总是通过最后一次调用notBoxPlot来更新。例子:
2 Y =兰德(20日);
X = [(10,1); 2 * 1 (1)];
图;抓住;
notBoxPlot (Y (: 1) X (: 1));
notBoxPlot (Y (: 2) X (: 1) + 3)
推迟;
有人能给点提示吗?谢谢。

艾玛·巴伯

嗨,抢劫,
这正是我在箱形图上画散点所需要的工具。
我的数据通常看起来像下面这个例子:
0.15709
0.111948
0.100527
0.0587151
0.0988821
0.105441
0.0774863
0.0993752
当我运行代码时,我得到的错误是:“索引必须是正整数或逻辑。”我能做些什么解释吗?我是Matlab的新手。我目前运行的是2016b版本。如果能帮忙就太好了,谢谢。

约翰内斯Rebling

非常好的工具,但是有办法给组贴上标签吗?即提供notBoxPlot(data,groupLabels),其中组标签是字符串,就像在正常的matlab箱线图?

奥马尔Rashell

嗨,抢劫,

下面是一个示例代码:
5) notBoxPlot (randn(20日,[1:4 7]);
然后我得到如下错误:

未定义函数'histcounts'用于'double'类型的输入参数。

notBoxPlot/myPlotter/ violpoints错误(第464行)
[counts,~,bins] = histcounts(Y,10);

notBoxPlot/myPlotter错误(第407行)
thisX = violaPoints (thisX thisY);

notBoxPlot中的错误(第309行)
[hTemp, statsTemp] = myPlotter (x (f), y (:, f));

你能告诉我如何解决这个问题吗?
非常感谢
奥马尔Faruqe

Vicente Ferrer Gallardo

嗨,抢劫,
我正在尝试使用这个,但我有几个问题。首先,我想从图中消除点,我怎么做呢?其次,我想要与另一个图重叠,我的问题是,在我的图是一个柱状图,在每个轴点有4条,因此,我想要在同一轴上绘制四个箱状图与我有的条对齐。你觉得我能做到吗还是用次要情节把它们分开更好?如果你需要,我可以把数字发给你。

非常感谢,
韦森特

AJ盖革

伟大的提交。看起来太棒了!

苏敬云

托马斯。

伟大的提交!
万分感谢!

有没有可能用它们自己的颜色来编码单个点?

Laura-Anne弗隆

Rob,非常感谢你写了这么棒的代码。我正在绘制用于这些图表的数据对(所以1,1和1,2是一对数据,2,1和2,2是一对数据等),我需要使用虚线将这些对连接起来。你对我该怎么做有什么建议吗?

Sopapun Suwansawang

桃瑞丝

非常感谢,
干杯

罗伯•坎贝尔

多丽丝,我更新了NBP。lineExamplesto illustrate what you want. The code is here:https://github.com/raacampbell/notBoxPlot/blob/master/code/%2BNBP/lineExamples.m

桃瑞丝

嗨,抢劫,
这是一个伟大的工具!
我想知道你能否给我一些建议,如何绘制包含不同数量测量的几组数据,
我试过分组,就像盒子图一样,但我没有解决问题,
谢谢

暗利Raccah

谢谢你,罗伯!

罗伯•坎贝尔

没有直接的方法可以做到这一点。如果您有索引,那么您应该能够直接索引包含点的plot对象的XData和YData属性。

Debottam茶室

嗨,抢劫,

是否有一种方法可以以这样一种方式绘制数据,即我可以为图中的两组点使用两个单独的标记?为了说明问题,我需要在一列中有两个单独的标记。我有原始的索引,但是很难将这些点映射回函数返回的点。

罗伯•坎贝尔

暗利:没有。您需要通过返回的plot对象获得点的坐标,并手动替换它们。

Debottam茶室

暗利Raccah

嗨,罗伯,功能很好。有没有一种方法来改变信号notbar上的单独点的颜色?谢谢!

SangPil Yoon

我明白了,谢谢…

SangPil Yoon

嗨,抢劫,
这是一个很好的函数。非常感谢。一个问题。我如何改变SD的颜色,95% CI,和平均线?

罗伯•坎贝尔

将“code”目录添加到您的MATLAB路径,它应该可以工作。事实上,我不明白你是怎么得到那个错误的,除非你复制了“notBoxPlot”。m”到您路径中的一个目录,并且没有移动“+NBP”目录。

巴蒂尔

你好,谢谢上传。这里有一个愚蠢的问题,我如何安装脚本?
当我运行它时,我得到了这个错误:

> > notBoxPlot([7、8、6、1、5、7、2、1,3,4,5,2,4])
未定义函数或变量'NBP.SEM_calc'。

notBoxPlot/myPlotter错误(第346行)
SEM = intervalFun (Y);提供的外部函数的函数句柄

notBoxPlot中的错误(第312行)
[hTemp, statsTemp] = myPlotter (x (f), y (:, f));

KQ Z

达里奥·穆拉·艾伯特

还Biguri

罗伯•坎贝尔

Zeinab esmailpour -看帮助中的例子

柴那esmaeilpour

太棒了,但是我不知道如何改变盒子的颜色。

龙虾汤

嗨,抢劫,
这太棒了!超级好的文档,超级干净的使用+爱你有表对象支持!金宝app
这应该是内置的!

吉安·拉杰·柯伊拉腊

嗨,抢劫,
我的数据包括五个不同的状态每个状态都有三个不同的条件。
写上州=星期天,星期一,星期二,星期三和星期四
条件=早上、下午和晚上
我将使用notBoxPlot用不同的颜色绘制每个条件框。这可能吗??
我在区分这些不同的条件和状态方面也有问题。
先谢了。

可啉普雷沃斯特

你好,罗伯,我在过去使用这个函数没有问题,但我现在面临与Isa相同的问题,即使是在运行“simpleExamples”时。我用的是matlab R2014a。任何想法?非常感谢。

罗伯•坎贝尔

依莎,我看不出你写的是什么。获取我今天发送的新版本,并查看示例。很可能你输入了错误的输入参数。也许我应该捕获它以提供更好的错误消息。如果你继续有问题,在Github上提交一个问题:https://github.com/raacampbell/notBoxPlot/issues

Isa

嗨,Rob,真的很期待使用这个函数,然而,即使当我试图运行示例时,我得到以下错误:
W的长度必须与X兼容。

std错误(第31行)
Y =√(var(varargin{:}));

notBoxPlot/myPlotter错误(第328行)
SD =性病(Y,“omitnan”);%需要统计工具箱

notBoxPlot错误(第293行)
[hTemp, statsTemp] = myPlotter (x (f), y (:, f));

示例中的错误(第20行)
notBoxPlot (r,[],“抖动”,0.5)

有人有什么建议吗?

罗伯•坎贝尔

弗朗西斯科,我要把它移植到GitHub上。还没机会在R2015a上试用。
请查看这里的更新:
https://github.com/raacampbell/notBoxPlot/issues/5

旧金山

嗨,抢劫,
没有其他错误。只有这一点。不会发生在遗留语法中。
谢谢
FdC

罗伯•坎贝尔

我不知道这是怎么回事。我不能在2015b重现你的问题。我想我手头没有2015a的安装,但我会看看的。这个错误非常奇怪:它不仅声称'sdline'是无效的,而且它是一个太大的变量。你看到与输入参数有关的其他错误了吗?

旧金山

使用新语法(不是旧语法)时出错。

notBoxPlot(兰德(50,1),1,“风格”,“sdline”)

使用notBoxPlot错误(第211行)
'style'的值无效。超出函数允许的最大可变大小。

我使用R2015a。有解决方金宝搏官方网站案吗?
谢谢
FdC

罗伯•坎贝尔

在你的场景中,我只会使用MATLAB中的常规箱线图函数,并覆盖原始数据。如果数据有很大的偏差,那么使用notBoxPlot是没有意义的。

以斯帖

你好,

可视化正态分布数据的好方法。

是否有可能轻松地调整函数,以便使用倾斜的数据和可视化的中值而不是平均值等(即使用常规的箱线图,但与数据的覆盖)?

谢谢

该死的shirsat rohekar

嗨,抢劫,
谢谢你的伟大功能…
但是有没有一种方法可以让我在每个盒须图中给圆圈着色。
例如,我的例子中的圆圈是12个月NO2数据的不同站点。
请帮助. .非常感谢
Shital

鲍勃Spunt

Anne-Laure GUINET

你好,
选项样式不起作用。

notBoxPlot(essaivariablesparcote2(:,1:2), style, 'sdline')
未定义函数或变量'style'。

essaivariableparcote2是一个矩阵。

谢谢

罗伯•坎贝尔

@Remi Chaussenot
你的问题超出了本评论的范围。你可以通过我的个人资料页面给我发电子邮件或在GitHub上开始一个问题(见问题链接在此页的右上角)

罗伯•坎贝尔

@曼纽尔,你为什么要在方框上画一个点?我不明白。

曼努埃尔

你好,罗伯,我想在盒子上画一个点,你的函数是可能的吗?

非常感谢

曼努埃尔

大卫L

雷米Chaussenot

你好,抢劫,

我喜欢你的函数,但我有几个问题。

我在实验室的神经科学,研究老鼠(野生型VS敲除),所以通常,我的数据集看起来像:
“WT”[453][5][70][45][20][20][70][65]
“WT”[468][0][70][35][10][20][50][65]
“WT”[466][5][50][35][15][20][40][60]
“WT”[452][5][65][40][25][35][75][70]
“WT”[470][0][60][25][10][20][35][55]
“WT”[467][0][55][40][10][15][35][60]
“WT”[456][0][65][40][10][25][70][60]
“MDX”[455][0][40][30][0][5][70][55]
“MDX”[473][0][50][35][5][20][45][55]
“MDX”[472][0][65][35][5][25][50][60]
“MDX”[465][0][50][35][10][30][70][65]
“MDX”[469][0][65][55][15][20][45][65]
“MDX”[471][30][75][50][50][45][80][80]
“MDX”[464][0][50][30][10][10][45][60]

在理想的情况下,我喜欢在x轴上画出所有的测量值(第一行),并为每种测量值的每种基因型画两条独立的点线。我认为这是不可能的,所以我先画一个WT的图,然后再画MDX的图。

然后,我尝试添加我的标签:
notBoxPlot (ndata_wt);
%添加x轴
Entete = alldata(1:1,3:end)
Ax = gca;
斧子。XTickLabel = entete;
斧子。XTickLabelRotation = -45;

但它不管用,你知道吗?
谢谢!

alldata:
'基因型' '数量' 'Clic' '2kHz' '4kHz' '8kHz' '16kHz' '24kHz' '32kHz' '
“WT”[453][5][70][45][20][20][70][65]
“WT”[468][0][70][35][10][20][50][65]
“WT”[466][5][50][35][15][20][40][60]
“WT”[452][5][65][40][25][35][75][70]
“WT”[470][0][60][25][10][20][35][55]
“WT”[467][0][55][40][10][15][35][60]
“WT”[456][0][65][40][10][25][70][60]
“MDX”[455][0][40][30][0][5][70][55]
“MDX”[473][0][50][35][5][20][45][55]
“MDX”[472][0][65][35][5][25][50][60]
“MDX”[465][0][50][35][10][30][70][65]
“MDX”[469][0][65][55][15][20][45][65]
“MDX”[471][30][75][50][50][45][80][80]
“MDX”[464][0][50][30][10][10][45][60]

ndata_wt:
5 70 45 20 20 70 65
0 70 35 10 20 50 65
5 50 35 15 20 40 60
5 65 40 25 35 75 70
0 60 25 10 20 35 55
0 55 40 10 15 35 60
0 65 40 10 25 70 60

罗伯•坎贝尔

你可以试试FEX上的旋转标记功能。号码是#8722

罗伊·格拉尼特

嗨,抢劫,

伟大的功能!

我只是对x轴标签有一个问题,我不能让他们垂直-有什么建议?

谢谢,
罗伊

罗伯•坎贝尔

F4b,

是的,这是可能的,但有两点需要注意:

1.首先,您需要一个自己的标准来确定如何定义离群值。

2.你必须做“一点”额外的编码来突出要点。这里有一个例子,我们只强调最积极的一点。之所以会出现这种情况,是因为我故意避免在函数中添加太多这样的额外特性。这样做的目的是为了方便其他人根据需要修改这些情节。

这里有一个玩具般的例子:

clf H = notBoxPlot (randn(40岁,5));
抓住

2 = 1:5
y =得到(H (2) . data, YData);
x = get (H (2) . data, XData);
f =找到(y = = max (y));
情节(x (f), y (f)”或“,“markersize”,10)
结束

推迟

F4b

F4b

你好,
非常好的功能!

我想知道是否有可能为每个点显示一个标签,以便识别哪些点是异常值。

非常感谢,
F4b

罗伯•坎贝尔

马修,你的要求已经可以实现只需再写一行代码

clf H = notBoxPlot(兰德([30日3]));集(H (2) . data,‘markerfacecolor’,‘g’)
集(H (3) . data,“markerfacecolor”、“c”)
传奇([H.data],'A','B','C') %添加传奇
集(gca, XTickLabel, {' A ', ' B ', ' C '})

马修·库珀

这是一个很好的函数,但是如果它显示图例就更好了,这样如果绘制两个组,图例就自动对应于函数中的markerfacecolor集。

罗伯•坎贝尔

例3。

克里斯

你好,我喜欢这个,我们有一个N为300的数据,并想减少点的大小,因为它们掩盖了平均值/SE/SD“补丁”

谢谢
克里斯

埃里克

jr !Menzinger

汤姆

罗伯•坎贝尔

是的,框图显示中位数和四分位数等,所以可以是非对称的。如果这是你想要的,那么使用MATLAB箱线图函数。这个版本,顾名思义,是一个框图。它使用了平均数和与平均数相关的统计数据。这就产生了对称的误差条。这是有理由的,说实话,这个函数的目的是取代柱状图,而不是取代盒状图。

其基本原理是,t检验和方差分析通常是在通常以柱状图和盒状图绘制的数据上进行的。然而,测试是基于平均值,而箱形图显示的是中位数。柱状图中经常会有误差柱,显示1个平均标准误差(1 SEM),这并不能反映生物学和社会科学中常用的p=0.05显著性准则。这里使用的95%置信区间提供了显著性的可视化指标。在大多数柱状图中,原始数据没有被覆盖,这大大降低了图表的效用,因为它隐藏了底层数据。然而,通过精心选择的绘图选项(这是由该功能提供的便利),通常可以绘制出所有的原始数据,甚至可以绘制大量组的数据。我相信,叠加的原始数据通常比盒图的四分位数和晶须更有信息量。当然,这是个人喜好。

阿诺德

我可能搞错了,箱线图中的这条线不应该是中位数吗?

我用我的数据试了一下,盒子总是对称的,而使用matlab箱线图函数可以看到数据分布的不均匀程度(好吧,也可以从“notboxplot”绘制的单个数据点看到)。

有没有办法让这个盒子“正常”地工作?

Surojit Biswas

我喜欢它

罗伯•坎贝尔

我明白了:而不是x是一个向量(数字)。这似乎是一种不合理的延伸。我有空就去做。

亚当

很好。谢谢你!我还想请求第二个参数可以是定义组的字符串列表。

如。

grouplabels notBoxPlot(数据)

罗伯•坎贝尔

加文,
谢谢你的错误报告。我已经提交了一个正确解析的修复:
notBoxPlot (randn (1100), repmat(1:10 1 10), 0.1,“线”)

加文

如果使用向量作为y和x输入,抖动和样式选项将不起作用。这是因为第115行上对notBoxPlot的递归调用没有传递这些选项。

杰西卡

我很兴奋使用这个绘图工具,但我有一个问题。当我试图运行notboxplot代码时,我得到以下错误。
“? ?达到最大递归限制500。使用组(0 ' RecursionLimit ' N)
改变极限。请注意,超出可用堆栈空间会导致MATLAB和/或计算机崩溃。

错误在==> findobjhelper"

我应该设置我的递归限制,以使代码工作,但我不崩溃我的计算机?还是有其他问题?

谢谢,
杰西卡

罗伯•坎贝尔

茱莉亚,

notBoxPlot函数返回所绘制数据的句柄。最好是用这些来做你想做的事。例句:

2) H = notBoxPlot (randn(20日);
x1 =得到(H (1) . data, XData);

X1是第一个方框中点的x值。您可以使用这种方法来获取所有的x和y数据,然后绘制直线。你可以像这样改变屏幕上的情节元素的顺序:http://www.matlab-cookbook.com/recipes/0050_Plotting/0010_Plot_Manipulation/changingPlotOrder.html

我唯一要注意的是,由于x轴上的抖动,这个图可能看起来很乱。你可以用第三个输入参数修改抖动。如果你有很多数据点,那么你所做的可能是一个更好的散点图。也许你会对我的地毯规划感兴趣?//www.tatmou.com/matlabcentral/fileexchange/27582-rug-plots

茱莉亚Sandell

很好的函数,我在寻找一种将数据点绘制在盒须图上的方法,这似乎很有效。

我想知道在绘制数据点和数据集之间的关联线方面是否有什么建议。例如,我有一组数据点在一个事件之前,然后有一组数据点在同一个主题的事件之后。我想用这个函数把这两个集合相邻地画出来,然后画出从受试者1到受试者1,在受试者1之前,在受试者2之后,在受试者之前,之后,等等。

有什么建议吗?

罗伯•坎贝尔

詹:
Q1。函数会返回均值的坐标所以你可以在polyval中使用这些。如。
H = notBoxPlot (randn(10),[],[],“线”);
x =得到([H.mu],“XData”),y =得到([H.mu],“YData”);
如果没有“线”,上面将为每个平均值返回两个数据点(因为平均值是线),但这也很容易处理。这对你有用吗?

Q2。你可以这样做:
5) notBoxPlot (randn(10日,[1、2、5、9、10))

J G

如何在x轴上使用连续间隔的函数?
例如,
P = [0.1 0.25 0.5 0.75 0.9];
箱线图(“位置”,p)
将沿x轴不均匀地放置箱线图。有办法用这个函数来做吗?

J G

伟大的功能!是否有一种方法可以通过polyval/polyfit的方法获得趋势线?谢谢!

罗伯•坎贝尔

好吧……由于某种原因,添加补丁对象会导致gname失败。如果您使用“line”绘图样式运行notBoxPlot,那么gname可以工作。

罗伯•坎贝尔

嗯…不知道。我会调查的。

伊恩·夏皮罗

伟大的工具。这是在一组数据中可视化分布的极好方法。然而,我发现它似乎不能与'gname'一起标记单个数据点,而boxplot可以做到这一点。知道为什么会这样吗?

罗伯•坎贝尔

我将很快修改这个函数,使其不需要额外的工具箱。否则,哪个函数最好可能取决于数据集的大小。对于大样本量,小提琴图效果最好。对于小样本,我更喜欢这个页面上的图表风格,因为它不存储数据。

亚历山大

依我看,一个更好的内建箱线图的替代品是“用于绘制多个发行版的小提琴图(distributionPlot.m)”,它不需要任何额外的工具箱。检查:
//www.tatmou.com/matlabcentral/fileexchange/23661-violin-plots-for-plotting-multiple-distributions-distributionplot-m

pangyuteng

现在,我很欣赏我刚刚用你的函数做的东西。非常喜欢,谢谢。
您可能还想将此函数与XTICKLABEL_ROTATE结合使用。

罗伯•坎贝尔

几乎相同的方法:只是不要将组编码为字符串的单元格数组。修改示例:

Group = [repmat(1,5,1);]Repmat (2,10,1);Repmat (3,15,1)];
notBoxPlot ([x, y, z],集团)

然后,如果需要,可以将XTickLabels更改为字符串。我还没有发现我经常这样做,以至于添加单元格数组作为输入的可能性。也许我应该这样做(当时间允许的时候!)

开尔文

我想知道noBoxPlot如何绘制不同长度的向量。

即。
X = rand(5,1);
Y = rand(10,1);
Z = rand(15,1);
group = [repmat({'First'}, 5,1);repmat({'Second'}, 10,1);repmat({'Third'}, 15,1)];
箱线图([x, y, z],集团)

提前谢谢!

哈利MacDowel

谢谢抢劫。爱死它了。

安德里亚

罗伯•坎贝尔

通常我会说,您应该使用函数返回的句柄修改所绘制的对象。然而,用这种方式去完成你的要求是很尴尬的。因此,我刚刚提交了一个更新,应该做你想要的。第4个参数可以如何有值“sdline”。如果您想修改行属性,我建议通过函数返回的句柄修改对象属性。

J G

这非常有用,谢谢!是否可以将SD绘制为错误条而不是框?

迪伦

非常有用,代码写得非常好。

罗伯•坎贝尔

马哈茂德,
您可以使用与大多数其他绘图命令完全相同的方式实现这些功能。我尽量避免函数的行为过于特殊。所以,回答你的问题:
clf
h = notBoxPlot (randn (10, 2));
集(gca, XTickLabel,{‘GrpA’,‘GrpB})
ylim ([5,5])

最后两行显然是设置标签和更改轴限制的标准方法。这些方法适用于任何情节。注意,notBoxPlot函数返回绘图对象的句柄,以便您可以更改它们的属性,甚至删除它们。例如,你可以这样删除所有的数据点:delete([h.data])

马哈茂德

非常有用!
两个问题,
1)如何在x轴上添加标签,就像在boxplot函数中使用“label”选项一样?
2)如何指定在notboxPlot的y轴上绘制的范围?

Rossella平板

非常好而且有用。谢谢!

罗伯•坎贝尔

真的吗?我以为我把拉链拉进去了。谢谢你告诉我。我将重新上传。

迈克尔·阿什比

我喜欢这个想法,但它似乎缺少必要的“SEM_calc”函数。

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

社区寻宝

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

开始狩猎!