如何更改箱线图上的轴标签

时间:2013-06-06 00:07:47

标签: matlab

使用统计工具箱中的boxplot命令时,轴属性会以奇怪的方式更改。例如,一个得到

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

轴发生了什么,如何重命名标签,和/或丢弃一些标记?

3 个答案:

答案 0 :(得分:5)

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


修改 - 有关boxplot实际执行操作的更多信息。

boxplot执行一些复杂的操作 - 键入edit boxplot来查看代码,您会发现它是一个非常冗长且复杂的函数。基本上它会产生一个没有轴标签的空白轴,这就是为什么你看到XTick等的空值。然后它会使各个行中的boxplot元素变得模糊,并通过添加文本元素来模拟假轴标签。您可以通过绘制成图f,然后获取Children f,然后迭代以获取Children来直接修改它们。最终,您将找到带有标签名称的文本元素。

答案 1 :(得分:3)

试试这个:

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

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

由于某些原因,将XTickMode重置为auto似乎是关键。

答案 2 :(得分:0)

谢谢你,Sam Roberts,这很有帮助。

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

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。