设置boxplot属性

时间:2014-03-10 19:46:38

标签: matlab matlab-figure

我正在尝试调整箱线图的高度。简单的例子:

boxplot(1:10,[zeros(1,5) ones(1,5)], 'colorgroup', [0 1], 'colors', 'rb', 'orientation', 'horizontal') 
h = findobj(gcf, 'tag', 'Box'); 
ydata = get(h, 'YData');
celldisp(ydata);
ydata{1} = ydata{1}*0.60;  % adjust height
set(h, 'YData', ydata);

请注意celldisp(ydata)显示:

ydata{1} =
    1.8500    1.8500    2.1500    2.1500    1.8500
ydata{2} =
    0.8500    0.8500    1.1500    1.1500    0.8500

上面的代码给出了错误:

Error using set
Conversion to double from cell is not possible.

如何设置'YData',因为它是一个单元格?


请注意,这是从更复杂的代码中提取的简化方法。一般来说,单元格ydata的元素都是 NOT 所有相同的长度,因此你不能只在ydata上使用cell2mat或其他东西

1 个答案:

答案 0 :(得分:1)

事实证明,h是句柄的数组,因为此图中有多个对象。

因此,必须分别在数组 h中的每个条目中执行操作。

e.g。

ydata = get(h(1), 'YData');
% do stuff to ydata,
set(h(1), 'YData', ydata);

ydata = get(h(2), 'YData');
% do stuff to ydata,
set(h(2), 'YData', ydata);