2013-06-06 54 views
2

当使用统计工具箱中的boxplot命令时,轴属性以奇怪的方式变化。例如,一个得到如何更改箱形图上的轴标签

 
    XTick = [] 
    XTickLabel = 
    XTickLabelMode = manual 
    XTickMode = manual 

发生了什么事给轴和一个如何可以重命名标签,和/或删除一些蜱?

+0

你调用'boxplot'的数据是? – paddy

+0

描述数据很困难。假设它有很多组。无论数据是什么,在调用boxplot后,轴行为的变化似乎都会发生。 – passerby51

回答

5

尝试使用可选的labels参数调用boxplot


编辑 - 什么boxplot实际上没有进一步的信息。

boxplot做一些复杂的东西 - 类型edit boxplot来看看代码,你会发现它是一个非常长和错综复杂的功能。基本上它会生成一个没有轴标签的空白轴,这就是为什么您会看到XTick等空值。然后,它会使boxplot元素脱离个别行,并通过添加文本元素来模拟假轴标签。你可以找到它们并直接修改它们,通过绘制一个数字f,然后获得Childrenf,然后迭代获得他们的Children。最终你会找到带有标签名称的文本元素。

+0

谢谢,这照顾我的问题,即将标签旋转到垂直状态(通过将'labelorientation'属性设置为'inline')。但是,它并没有解释'boxplot'对轴的作用。 – passerby51

+1

'boxplot'做了一些复杂的事情 - 输入'edit boxplot'来查看代码,你会发现它是一个非常长而复杂的函数。基本上,它会生成一个没有轴标签的空白轴,这就是为什么您会看到“XTick”的空值等等。然后,它会使boxplot元素不在单独的行中,并通过添加“text”元素来模拟假轴标签。你可以直接找到它们并修改它们,通过绘制一个'f'图,然后获得'f'的'Children',然后迭代获得他们的'Children'。最终你会找到带有标签名称的'text'元素。 –

+1

@SamRoberts真是个好评 - 这应该是你答案的一部分。 – paddy

3

试试这个:

xtix = {'A','B','C'}; % Your labels 
xtixloc = [1 2 3];  % Your label locations 

set(gca,'XTickMode','auto','XTickLabel',xtix,'XTick',xtixloc); 

由于种种原因重置XTickMode自动似乎是关键。

+0

谢谢!无论他们的动机是如何在boxplot中对标签进行黑客攻击,从我的角度来看,处理轴标签的自然方式似乎更有意义。我很震惊地看到函数中有近4000行代码。打破标签(以及依赖于它的工作流程)显然是其中一个后果。 – Tom

0

谢谢你,萨姆罗伯茨,这是有帮助的。

我写了以下内容,根据此建议删除组标签。但是,它将删除所有标签,包括轴和数据提示。似乎没有办法去除轴上的标签,但将其留在数据提示上。

m = get(get(get(figH,'Children'),'Children'),'Children'); 
for ii = 1:numel(m) 
    if(strcmp(get(m(ii),'Type'),'text')) 
     set(m(ii),'String', ''); 
    end 
end 

变量figH是手柄,你的身材。如果boxplot是活动图形手柄,也可以尝试gcf。

+0

如果它不能真正解决问题,并且你有自己的问题,那么它应该作为一个新问题发布。 –