如何在boxplot中更改轴的字体大小和线宽?

时间:2017-06-23 19:57:58

标签: matlab matlab-figure boxplot axes

如何更改boxplot中的轴和线宽的字体大小? boxplot是否返回类似于plot函数的句柄?

我尝试了以下内容:

figure
[ax h1 h2] = boxplot(x,y1,x,y2)
set(ax,'FontSize',14)

但它不起作用。

2 个答案:

答案 0 :(得分:2)

使用轴的FontSize属性和LineWidth的{​​{1}}属性分别更改轴的字体大小和方框图的线宽。

一个例子:

boxplot

答案 1 :(得分:1)

Sardar's answer是快速而简短的方法。我将添加它,如果你只想改变你应该写的框:

set(bh(5),'LineWidth',2);

但是,它可能有一些限制,所以这里有一个更深入的方法来控制你的箱线图。

Boxplot Line

Matlab中的

boxplot具有与其他绘图不同的行为,因为它创建了一组线而不是一个带有句柄的图形对象。因此,有时您只能在创建时操纵其部分(例如,设置'BoxStyle''Colors'属性)。

如果要在创建后更改它,或者要控制未在函数输入中定义的属性,则需要调用boxplot组的句柄。这完成了:

bx = findobj('Tag','boxplot');

现在你可以操纵所有类型的东西,特别是盒子的LineWidth。以下是bx包含的内容:

>> bx.Children

ans = 

  7x1 Line array:

  Line    (Outliers)
  Line    (Median)
  Line    (Box)
  Line    (Lower Adjacent Value)
  Line    (Upper Adjacent Value)
  Line    (Lower Whisker)
  Line    (Upper Whisker)

您可以看到boxplot的每个部分都是一个不同的图形元素(所有这些元素的类型为' Line')。如果您只想更改框的属性,请写下:

set(bx.Children(3),'LineWidth',3)

或更多属:

set(findobj(bx,'Tag','Box'),'LineWidth',3)

如果你只有一个箱形图你可以写:

set(findobj('Tag','Box'),'LineWidth',3)

甚至没有定义bx

这将导致(使用carsmall样本数据):

only box line

如果你想操纵所有的箱线图,你会写:

set(bx.Children,'LineWidth',3)

并获得以下结果:

all boxplot lines

您可以看到更多更改箱图属性herehere的示例。

轴字体大小

更改轴的字体大小要简单得多,可以通过直接设置(如果这是活动轴)来完成:

set(gca,'FontSize',14);