Colorbar doesn't show colours the right way round?
11 ビュー (過去 30 日間)
I have been bar plotting some data, and have graduated the colours relative to their values in the data which works fine. The issue I am having is that when I call the colorbar - the colours dont match the plotted colour scheme of the data. Following an answer from Image Analyst, I write the graduated bar plot like this:
numberofbars = length(var1);
barColorMap = colormap(summer);
x = 1 : numberofbars;
for b = 1 : numberofbars
% Plot one single bar as a separate bar series.
handleToThisBarSeries(b) = bar(x(b), var1(b));
% Apply the color to this bar series.
set(handleToThisBarSeries(b), 'FaceColor', barColorMap(b,:));
and get this as the output:
which for the bar plot is what I want, but the colorbar colours are inverted to the data. I have tried this to invert the colorbar scheme (following Walter Roberson advice):
oldcmap = colorbar;
colorbar( flipud(oldcmap) );
but unfortunately this doens't sort the colorbar issue in my case.
Does anyone have any advice on how to resolve this please?
回答 (2 件)
J Philps 2017 年 5 月 31 日
編集済み: J Philps 2017 年 5 月 31 日
Walter was on the right track with his suggestion, but I believe you want to flip the colormap of the colorbar. Here is code demonstrating how you can flip the colormap of the colorbar graphical object:
c1 = colorbar;
c2 = colorbar;
cmap = colormap;
upside_down_cmap = flipud(cmap);
Image Analyst 2017 年 5 月 31 日
The problem is your chosen color, barColorMap(b,:), should not use b, the loop index, as an index. It should use an index that is chosen according to the height of the bar.