필터 지우기
필터 지우기

how to fill histogram legend markers

조회 수: 117 (최근 30일)
sani
sani 2021년 2월 24일
답변: Lior de Marcas 2021년 8월 14일
hello,
I'm plotting using histograms, and when I insert legend into the plot, the rectangles are hollow.
I'd like them to be filled but couldn't find any documentation about how to do it.
is it even possible?

답변 (2개)

KALYAN ACHARJYA
KALYAN ACHARJYA 2021년 2월 24일
편집: KALYAN ACHARJYA 2021년 2월 24일
I tried to reproduce the same error, I did not get it
data1=randi(10,[1,100]);
data2=randi(10,[1,100]);
histogram(data1,'FaceColor','r');
hold on;
histogram(data2,'FaceColor','b');
legend('Data1','Data2')
Can you confirm it?
  댓글 수: 3
Steven Lord
Steven Lord 2021년 2월 24일
The stairs DisplayStyle draws only the edges of the histogram bars, so the legend also shows only the edges. I don't believe there's a way to make it draw the filled boxes from the default DisplayStyle in the legend while using the stairs DisplayStyle in the axes.
sani
sani 2021년 2월 24일
so the only way is to find alternative way to display the data?

댓글을 달려면 로그인하십시오.


Lior de Marcas
Lior de Marcas 2021년 8월 14일
Had a similar problem. Probabley not relevant anymore, but you can use "fake" bar chart in order to do that (unfortanatly I don't remember the first post I saw something simillar in to give the deserved credit):
% Plot some stairs histograms:
data1=randi(10,[1,100]);
data2=randi(10,[1,100]);
histogram(data1,'DisplayStyle','stairs');
hold on;
histogram(data2,'DisplayStyle','stairs');
% Get since we didn't specify colors, we use 'auto'. Get the colors from
% the axis color order
% (https://www.mathworks.com/matlabcentral/answers/221889-how-do-i-get-the-facecolor-of-a-histogram-if-set-to-auto).
% If you specified colors, use them instead
colorList = get(gca,'ColorOrder');
% Now Create bar chart with nan so it won't show:
b = bar(nan(2,2)) %2X2 to create two bar charts (2 columns in the matrix == 2 bar charts).
b =
1×2 Bar array: Bar Bar
% The 2 rows is just so it won't create 1 chart for a vector input - there is probably a better way
set(b,{'FaceColor'},num2cell(colorList(1:2,:),2))
legend(b,{'Data1','Data2'})

카테고리

Help CenterFile Exchange에서 Line Plots에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by