How to use same colors inn all figures when making several figures with a loop
조회 수: 1 (최근 30일)
이전 댓글 표시
I have created a loop that makes several figures. When I apply "rand(1,3)) in the loop below, each figure gets different colors. Do you know how I can change the loop below to so that the colors are the same in every figure?
Alder = {'<20', '2029','3039','4049','5059','6069','>70', 'all'};
Vars = {gjG, gjR, gjI, gjDI, gjBV, GtoDI, GtoBV, RtoDIplusR, ItoG, RtoG, GtoI};
Vars2 = {'gjG', 'gjR', 'gjI', 'gjDI', 'gjBV', 'GtoDI', 'GtoBV', 'RtoDIplusR', 'ItoG', 'RtoG', 'GtoI'};
Aar = {'2011', '2012', '2013_1', '2014_1', '2014_s2', '2014_s5'};
n = length(Vars);
nAar = length(Aar);
for iVars = 1:n;
aVars = Vars{iVars};
figure,title(Vars2{iVars});
hold on
for iAar = 1:nAar
plot(aVars(11,:,iAar), 'color', rand(1,3));
set(gca, 'XTickLabel',Alder)
legend((Aar),'location','NE','FontSize',10);
end
hold off
end
댓글 수: 0
채택된 답변
the cyclist
2013년 5월 13일
This line sets the color:
plot(aVars(11,:,iAar), 'color', rand(1,3))
You could change that to
plot(aVars(11,:,iAar), 'color', 'r')
for red, or
plot(aVars(11,:,iAar), 'color', [r g b])
where r,g, and b are numeric values to give any RGB color.
댓글 수: 5
the cyclist
2013년 5월 13일
You can try setting different random seeds at the beginning of your code, to see if you can find a better array of colors.
If you don't want to use random colors, you can try the approach that Image Analyst had in his answer, which is similar to my answer but takes advantage of built-in MATLAB color maps.
추가 답변 (2개)
Image Analyst
2013년 5월 13일
Make up a table of colors. It should be N rows (for N colors that you want to use) by 3 columns (a red, a green, and a blue value). The numbers should go from (0,0,0) for black up to (1,1,1) for white. If you want, you can use some built in colormaps, like lines:
numberOfColors = 15; % Whatever you want.
myColorMap = lines(numberOfColors); % Use lines(), jet(), winter(), or whatever.
Whenever you want to plot the curve in the k'th color, you just do
plot(x, y, 'Color', myColorMap(k, :));
Do this for every axes that you want to plot in.
참고 항목
카테고리
Help Center 및 File Exchange에서 Data Distribution Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!