Matlab 透明重叠条形图

Matlab 透明重叠条形图,matlab,Matlab,我希望两个透明条形图重叠在一个图形中。我尝试了以下方法: bar(list2(:,1),list2(:,2),'r','FaceAlpha',0.5) hold on bar(list1(:,1),list1(:,2),'g','FaceAlpha',0.5) 但结果是: 为什么第二个情节是不透明的,有这些奇怪的条纹? 我使用matlab 2016a您的方法是正确的,它适用于几个小节: [list1(:,2),list1(:,1)] = hist(randn(200,1)); [list2(

我希望两个透明条形图重叠在一个图形中。我尝试了以下方法:

bar(list2(:,1),list2(:,2),'r','FaceAlpha',0.5)
hold on
bar(list1(:,1),list1(:,2),'g','FaceAlpha',0.5)
但结果是:

为什么第二个情节是不透明的,有这些奇怪的条纹?
我使用matlab 2016a

您的方法是正确的,它适用于几个小节:

[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';

尝试在第二个绘图中将
“线宽”设置为0。