How to change color bar? how to keep initial abscisses values?
1 次查看(过去 30 天)
显示 更早的评论
This is my code before adding a command to display values at the tip of the bars.
X = categorical({'1024','512','256','128'});
X = reordercats(X,{'1024','512','256','128'});
x=[1024,512,256,128];
Pitch= 17*10^(-3)
tai15 = []
for i = 1:length(x)
T = (x(i)*Pitch)/15
tai15=[tai15, T]
end
tai20=[]
for i = 1:length(x)
T = (x(i)*Pitch)/20
tai20=[tai20, T]
end
tai30=[]
for i = 1:length(x)
T = (x(i)*Pitch)/30
tai30=[tai30, T]
end
Tail=[tai15; tai20; tai30]
y=Tail'
b = bar(X, y)
b(1).FaceColor = [1 0 0]
b(2).FaceColor = [0 1 0]
b(3).FaceColor = [0 0 1]
legend({'X15','X20','X30'})
set(gcf,'color','w') % pour les bordures.
set(gca, 'FontSize', 9, 'linewidth', 1, 'FontName','Times New Roman'); %la taille des éléments sur les axes.
xlabel('Spatial resolution (pixels)','FontSize',12, 'FontName','Times New Roman')
ylabel('scene size (mm²)','FontSize',12, 'FontName','Times New Roman')
When i add the command to display values at the tip of the bars, bar color changes? and abscisses changes also? I want to keep the initial color and abscisses?
X = categorical({'1024','512','256','128'});
X = reordercats(X,{'1024','512','256','128'});
x=[1024,512,256,128];
Pitch= 17*10^(-3)
tai15 = []
for i = 1:length(x)
T = (x(i)*Pitch)/15
tai15=[tai15, T]
end
tai20=[]
for i = 1:length(x)
T = (x(i)*Pitch)/20
tai20=[tai20, T]
end
tai30=[]
for i = 1:length(x)
T = (x(i)*Pitch)/30
tai30=[tai30, T]
end
Tail=[tai15; tai20; tai30]
y=Tail'
b = bar(X, y)
b(1).FaceColor = [1 0 0]
b(2).FaceColor = [0 1 0]
b(3).FaceColor = [0 0 1]
hBar = bar(y,1);
for k1 = 1:size(y,2)
ctr(k1,:) = bsxfun(@plus, hBar(1).XData, hBar(k1).XOffset'); % Note: ‘XOffset’ Is An Undocumented Feature, This Selects The ‘bar’ Centres
ydt(k1,:) = hBar(k1).YData; % Individual Bar Heights
text(ctr(k1,:), ydt(k1,:), sprintfc('%.2f', ydt(k1,:)), 'HorizontalAlignment','center', 'VerticalAlignment','bottom', 'FontSize',8, 'Color','b')
end
legend({'X15','X20','X30'})
set(gcf,'color','w') % pour les bordures.
set(gca, 'FontSize', 9, 'linewidth', 1, 'FontName','Times New Roman'); %la taille des éléments sur les axes.
xlabel('Spatial resolution (pixels)','FontSize',12, 'FontName','Times New Roman')
ylabel('scene size (mm²)','FontSize',12, 'FontName','Times New Roman')
Do you have solution for this problem? i want to keep the initial bar color and abscisses?
0 个评论
采纳的回答
Jess Lovering
2019-10-2
To make sure I understand your intention - you want the colors to stay red, green, and blue and not default to the standard colormap colors, correct? When you add the line: hBar = bar(y,1) after you define the colors of the bars it deletes the original bars that you created. Then you make the bars again and then do not assign a color. See the below code for a possible fix.
X = categorical({'1024','512','256','128'});
X = reordercats(X,{'1024','512','256','128'});
x=[1024,512,256,128];
Pitch= 17*10^(-3)
tai15 = []
for i = 1:length(x)
T = (x(i)*Pitch)/15
tai15=[tai15, T]
end
tai20=[]
for i = 1:length(x)
T = (x(i)*Pitch)/20
tai20=[tai20, T]
end
tai30=[]
for i = 1:length(x)
T = (x(i)*Pitch)/30
tai30=[tai30, T]
end
Tail=[tai15; tai20; tai30]
y=Tail'
% b = bar(X, y)
% b(1).FaceColor = [1 0 0]
% b(2).FaceColor = [0 1 0]
% b(3).FaceColor = [0 0 1]
hBar = bar(y,1);
hBar(1).FaceColor = [1 0 0]
hBar(2).FaceColor = [0 1 0]
hBar(3).FaceColor = [0 0 1]
for k1 = 1:size(y,2)
ctr(k1,:) = bsxfun(@plus, hBar(1).XData, hBar(k1).XOffset'); % Note: ‘XOffset’ Is An Undocumented Feature, This Selects The ‘bar’ Centres
ydt(k1,:) = hBar(k1).YData; % Individual Bar Heights
text(ctr(k1,:), ydt(k1,:), sprintfc('%.2f', ydt(k1,:)), 'HorizontalAlignment','center', 'VerticalAlignment','bottom', 'FontSize',8, 'Color','b')
end
legend({'X15','X20','X30'})
set(gcf,'color','w') % pour les bordures.
set(gca, 'FontSize', 9, 'linewidth', 1, 'FontName','Times New Roman'); %la taille des éléments sur les axes.
xlabel('Spatial resolution (pixels)','FontSize',12, 'FontName','Times New Roman')
ylabel('scene size (mm²)','FontSize',12, 'FontName','Times New Roman')
更多回答(1 个)
Jess Lovering
2019-10-3
编辑:Jess Lovering
2019-10-3
You can add this line at the end and see if that works:
xticklabels(x);
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Dialog Boxes 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!