有没有办法在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}}
我也对其他解决方案持开放态度。感谢。
答案 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是一个线对象,因此它没有补丁的FaceColor
或FaceAlpha
(透明度)属性,因此您无法直接对其进行着色。你必须用黄色(由'y'参数设置)和0.5透明度绘制补丁。您可以获得XData
和YData
属性来获取补丁坐标。有关所有修补程序属性,请参阅here。
如果您不知道某些功能的作用,请务必使用help function_name
或doc function_name
检查matlab文档。