在Matlab中用boxplot填充框

时间:2013-02-28 00:30:52

标签: matlab boxplot

有没有办法在Matlab的盒子图中填充方框?

我可以使用colorgroup函数boxplot选项的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 选项更改框边界的颜色,但找不到任何更改或填充框内部空间的颜色。

编辑: 所以,我在评论的链接(http://www.mathworks.com/help/stats/boxplot.html)中指出了user1929959。但是,我是Matlab的新手,我非常感谢代码所做的简要说明。以下是该链接的代码:

{{1}}

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

1 个答案:

答案 0 :(得分:2)

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

boxplot中所有对象的标签,您可以在官方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属性来获取补丁坐标。有关所有修补程序属性,请参阅here

如果您不知道某些功能的作用,请务必使用help function_namedoc function_name检查matlab文档。