Matlab 图例没有';t使用'在直方图中显示正确的颜色;等一下';

Matlab 图例没有';t使用'在直方图中显示正确的颜色;等一下';,matlab,histogram,matlab-figure,Matlab,Histogram,Matlab Figure,当我使用“保持”绘制多个直方图时,图例的颜色与第一个直方图不匹配。见下图: 我的代码如下所示: figure(1) h1 = histogram(y_rating2,50); hold on h2 = histogram(y_rating2,50); l1 = line([rating_1_common_mean rating_1_common_mean],[0 max(h2.Values)],'Color','red','LineWidth',1.5); hold on l2 =

当我使用“保持”绘制多个直方图时,图例的颜色与第一个直方图不匹配。见下图:

我的代码如下所示:

figure(1)
h1 = histogram(y_rating2,50);

hold on

h2 = histogram(y_rating2,50);
l1 = line([rating_1_common_mean rating_1_common_mean],[0 max(h2.Values)],'Color','red','LineWidth',1.5); 

hold on

l2 = line([rating_2_common_mean rating_2_common_mean],[0 max(h2.Values)],'Color','green','LineWidth',1.5);

legend([h1 h2 l1 l2],{'Rating 1','Rating 2','Mean Rating 1','Mean Rating 2'});
注意: 我尝试过这个,但没有任何运气:

您可以将
FaceAlpha
设置为1,并在评级2后绘制评级1。例如

h2 = histogram(y_rating2, 50, 'FaceAlpha', 1);
hold on;
h1 = histogram(y_rating1, 50, 'FaceAlpha', 1);

您可以将
FaceAlpha
设置为1,并在评级2后绘制评级1。例如

h2 = histogram(y_rating2, 50, 'FaceAlpha', 1);
hold on;
h1 = histogram(y_rating1, 50, 'FaceAlpha', 1);

这是因为透明度效应。等级1中的所有数据都低于等级2。如果部分数据高于等级2,您将看到正确的颜色。因此,我应该简单地交换它们?是的,这将解决您的问题。同时将
FaceAlpha
设置为1,这是因为透明度效果。等级1中的所有数据都低于等级2。如果部分数据高于等级2,您将看到正确的颜色。因此,我应该简单地交换它们?是的,这将解决您的问题。同时将
FaceAlpha
设置为1