1

有没有办法在 Matlab 的箱线图中填充方框?

我能够使用函数colorgroup选项boxplothttp://www.mathworks.com/help/stats/boxplot.html)更改框边界的颜色,但找不到任何更改或填充的选项盒子内部空间的颜色。

编辑:所以,我浏览了链接(http://www.mathworks.com/matlabcentral/newsreader/view_thread/300245)上的代码,在评论中指出了user1929959。但是,我是 Matlab 的新手,非常感谢您简要解释一下代码的作用。这是该链接中的代码:

load carsmall
 boxplot(MPG,Origin)
 h = findobj(gca,'Tag','Box');
 for j=1:length(h)
    patch(get(h(j),'XData'),get(h(j),'YData'),'y','FaceAlpha',.5);
 end

我也对其他解决方案持开放态度。谢谢。

4

1 回答 1

2

使用FINDOBJ功能,您可以在当前坐标区中搜索标签等于 'Box' 的图形对象(gca = 获取当前坐标轴句柄)。

您可以在官方 MW 文档中找到箱线图中所有对象的标签(就在示例之前): http: //www.mathworks.com/help/stats/boxplot.html

FINDOBJ 将它找到的所有对象的句柄返回到变量 h 中,该变量是双数组。您可以使用句柄来修改对象属性。get(h(1))您可以使用或查看给定句柄的所有属性inspect(h(1))

例如,您可以设置线宽:

set(h,'LineWidth',3)

由于 box 是一个线对象,它没有补丁FaceColorFaceAlpha(​​透明度)属性,所以你不能直接给它上色。你必须用黄色(由'y'参数设置)和0.5透明度在它上面绘制补丁。你得到XDataYData属性来获取补丁坐标。有关所有补丁属性,请参见此处

同样,如果您不知道某些函数的作用,请始终使用help function_name或检查 matlab 文档doc function_name

于 2013-02-28T03:34:14.283 回答