我希望有两个透明条形图重叠在一个图中。我试过这种方式:
bar(list2(:,1),list2(:,2),'r','FaceAlpha',0.5)
hold on
bar(list1(:,1),list1(:,2),'g','FaceAlpha',0.5)
为什么第二个情节不透明并且有这些奇怪的条带? 我用matlab 2016a
答案 0 :(得分:9)
你的方法是正确的,它适用于几个条:
[list1(:,2),list1(:,1)] = hist(randn(200,1));
[list2(:,2),list2(:,1)] = hist([randn(100,1)-0.5 ; randn(100,1)+0.5]);
bar(list2(:,1),list2(:,2),'r','FaceAlpha',0.5)
hold on
bar(list1(:,1),list1(:,2),'g','FaceAlpha',0.5)
但是,您可以注意到每个条纹都有黑色线条。随着条形码数量的增加,黑色轮廓将覆盖所有内容:
[list1(:,2),list1(:,1)] = hist(randn(3000,1), 300);
[list2(:,2),list2(:,1)] = hist([randn(1500,1)-2 ; randn(1500,1)+2], 300);
h1 = bar(list2(:,1),list2(:,2),'r','FaceAlpha',0.5)
hold on
h2 = bar(list1(:,1),list1(:,2),'g','FaceAlpha',0.5)
(结果将取决于Matlab版本。在2016b中,问题会自动得到纠正)。
解决方案:去除黑色轮廓:
h1.EdgeColor = 'none';
h2.EdgeColor = 'none';