histogram2
函数(在R2015b中添加)具有DisplayStyle
可选参数,该参数控制输出是使用“条形”(均匀颜色但高度不同)或“图块”(带有相同的高度为0,但颜色不同,如下所示:
rng(1337); X = rand(100,1)-0.5; Y = randn(100,1); rng('default');
figure();
subplot(1,2,1); hH(1) = histogram2(X, Y, 'DisplayStyle', 'bar3');
subplot(1,2,2); hH(2) = histogram2(X, Y, 'DisplayStyle', 'tile');
我想将这两种模式结合起来,以获得不同高度的条形,其中也具有不同的颜色。如上所述,我尝试使用'DisplayStyle'
选项,但它同时更改了太多的可视元素。任何人都可以提出一种方法来获得我想要的东西吗?
我非常希望解决方案成为histogram2
对象(而不是bar3
),因为稍后使用它们会更加方便。
答案 0 :(得分:4)
histogram2(X, Y, 'FaceColor', 'flat');
那些更喜欢“强力”方法而不是彻底阅读文档的人可能会通过深入比较两个结果对象(hH(1)
,hH(2)
),找到不同的属性,然后尝试分配来解决这个问题来自其他风格的理想值。实际上,这些差异出现了:
FaceColor
:'auto'
与'flat'
,分别在“蓝色”和“平面”图表中。FaceLighting
:'lit'
与'none'
,分别在“蓝色”和“平面”图表中。然后,幸运的是,以下行确实有效:
hH(1).FaceColor = 'flat';
这可行的原因可在documentation of FaceColor
:
直方图条形颜色,指定为以下值之一:
'none'
- ....
'flat'
- 条形颜色因高度而异。不同高度的酒吧有不同的颜色。颜色从图形或轴颜色图中选择。
'auto'
- ....
......之前的阅读可以节省一些时间。
这里要学到的教训是:当有大量文档 1 时,我们不应该只停留与问题相关的第一件事,因为一个明显的解决方案可能会稍微向下看。 / em>的
1 大多数MATLAB函数的情况,特别是对于MATLAB的图形对象。