编辑注意:此文件被选为Matlab Central挑选本周
plotSpread允许创建“蜂窝式图”,即在数据点上添加抖动以避免重叠的点分布。
它还允许在数据中指定组以显示分布中的组的分布。
plotSpread最适合使用少量数据点可视化分布。如果点变得太密集,就很难理解分布模式的相对重要性,在这种情况下,应该使用“distributionPlot”。
plotspropread使用优秀的“digricisive_colors”为不同类别选择默认颜色。
此外,.zip文件包含“MyErrorbAR”(内置错误的修改),“重复级别”,以便于列表中的条目轻松重复条目,并“iseven”测试是否均匀。对于“重复性”和“ISEVEN”都有更好的文件交换中的替代方案。
乔纳斯(2021)。地块散布点(蜂窝状地块)(//www.tatmou.com/matlabcentral/fileexchange/37105-plot-spread-points-beeswarm-plot), MATLAB中央文件交换。检索。
令人敬畏的骚动,但我希望有选择改变标记
有谁知道如何旋转XLabel以及如何在颜色标记的基础上彩色每个标签组?
我改变了标签的字体大小(第521行):
开关opt.xyOri
案例'正常'
开关opt.xMode
案例手册'
集(opt.xValues啊,“XTick”,“字形大小”,15);
如果〜isempty(opt.xnames)
集(啊,‘XTickLabel’,opt.xNames)
结束
但是,我不能将标签旋转并在颜色标记的基础上旋转它们。
谢谢。
你好,
我有三组数据A,B和C,我想用不同的颜色/标记把A和B画在同一个类别下。怎么做呢?
我喜欢这个代码并经常使用它,但是我遇到了一个小问题。binWidth允许您设置最小的y轴距离,在此点将展开,但由于它只需要一个输入,它只有在绘制线性数据时才真正有用。我试图用一个对数尺度的y轴来绘制数据,设置一个binWidth值将使低于1的点分散得非常远,而高于1的点分散得很窄。是否有一个简单的修复转换为binWidth作为一个日志函数?
谢谢你的这种功能。我想为每个标记单独指定颜色。我有1x5单元格的数据输入,所以尝试了一个匹配的输入到“分发色彩”为1x5单元数组,或者作为3列向量,其中包含所有点的总长度,但获取错误消息'请提交一个颜色(5dist,256种颜色)'。关于最佳方法的任何建议都将非常欣赏到最佳方法/正确的颜色数据格式。谢谢。
您好,我运行推荐的例子:
数据= {RANDN(25,1),RANDN(100,1),RANDN(300,1)};
图,plotSpread(数据、[][],{25分,100分,300分的})
出现以下错误:
使用plotSpread时出错(第170行)
请将选项categoryLabels添加到旧语法中
Untitled2错误(第4行)
图,plotSpread(数据、[][],{25分,100分,300分的})
有什么建议吗?
谢谢
这是一个伟大而有帮助的代码!我选择了'o',','d'和'^'作为我的标记。但是我如何填写它们?目前它们是空的形状标记。另外,我想调整标记大小,但它似乎是下面的线路不适合我。我如何改变标记大小并填写标记?谢谢。
set(findall(3,'type','line','color','k'),' marksize ',16) %改变标记的大小
伟大的贡献,非常感谢!
一个建议:目前似乎绘制了分布的左/右边缘的点在更接近垂直线的垂直线的居中绘制。在我的一个案例中,我用圆形标记('O')绘制了许多点(〜2000),这导致了图形上的不是非常令人愉悦的效果:中心的点彼此封闭,但沿着左侧的点或者正确的保证金被定位在“顶级”,允许非常繁忙的分销。我知道绘制许多点可能不是理想的理想,但如果一个人想要更好地绘制来自外部 - > OUT - > OUT - > OUT的个人点。希望这不是太令人困惑......
谢谢你的工作,这是一个很好的开始。在Matlab中非常需要点绘图/ beeswarm plot!
如果您正在考虑在此功能上进行任何进一步的工作,请您查看r,在下面的网址上查看r的Beeswarm包吗?
特别是,请考虑执行他的“广场”情节选项?这不会产生随机抖动,这在许多环境中分散了分散注意力。眼睛和大脑在视觉上加工了“方形”蜂鸣的情节。
此外,Matlab现在通过parula函数(R2014b及以后)生成感知一致的颜色。如果可能,适当的代码更改,也请。
http://www.cbs.dtu.dk/~eklund/beeswarm/
你好,我有一个大问题:是否有一种方法可以连接不同条件之间的点?
一个非常好的功能,允许各种绘图并填补Matlab的绘图能力中的差距。
@Rainer, Eric:当plotSpread返回点的句柄时,你可以像这样改变标记的颜色:集(处理{1},“颜色”,“r”);使用另一个字符串或[r,g,b]数组来选择不同的颜色。
我遇到了同样的问题,我通过欺骗函数使用两个类别来解决它,其中第二类是空的。我在输入数据上添加了一行NaN,然后创建了一个所有0的categoryIdx向量,只是将结束值设置为1。这使得情节在技术上有两种类型,虽然第二类完全是空的,没有绘制。然后你只需使用categoryColor将你的颜色设置为你需要的任何颜色。
伟大的提交。我发现如果只有一个组,没有办法指定标记颜色?它总是默认为蓝色。
@sneha:plotsproad(数据,'showmm',5)显示标准偏差,plotspread(数据,'showmm',4)显示了平均值的标准误差。
有没有办法将错误栏添加到plotspread图表中?
谢谢你的提示。我会设法解决这个问题的。
我发现ictionable_colors函数需要从图像处理工具箱中的makecform函数。不是每一个安装都有它。
要以编程方式更改标记大小,您可以使用“findall”功能来获取斑点的句柄。假设您希望将标记大小设置为16个黑色标记,并且图数为3,您可以写入
集(findall(3、“类型”、“线”、“颜色”、“k”),“markerSize”,16)
你好,
谢谢你的剧本!!真的很有用,但你能告诉我如何改变脚本中的标记大小?
谢谢
你好,
好脚本!!您能用CareginyIDX绘制平均值,中位数,错误栏或其他人吗?如果是,怎么样?
谢谢
它现在运作!!!
非常感谢。
“ismatrix”直到2010年才出现。我已经尝试和失败安装2009b今天,所以我不能确保我没有包括另一个不兼容的函数调用。你能测试新版本吗?
我实际上正在运行2010A,但我仍然没有它?
ismatrix是R2009b之后发布的内置函数——很抱歉错误地标记了plotSpread。我正在替换ismatrix,我将上传一个固定的版本
我测试了你的例子,得到了以下内容:
我想你忘记包括“ismatrix”函数了吧?
---------------------------------
???用于输入参数的未定义功能或方法'ISMatrix'
“双”。
错误在==> plotSpread在196
elseif ismatrix(数据)