Want to make changes to the colorbar

20 次查看(过去 30 天)
Hi guys,
I have a simply surface below which gets printed with a colorbar. I want to make some minor adjustments to the colorbar. Since my graph is a very 'binary' graph (either 1 or 0), I want my colorbar to only show '0' and '1'. I don't want it to show all the decimal values between 1 and 0.
I then want the colorbar's 1 to show a certain text ("values are > 0.5") and the 0 to show ("vales are < 0.5")
Hope this makes sense. Thanks very much!
x = [-10:10];
y = [-10:10];
Eq1 = @(x,y)(x + y);
Eq2 = @(x,y)(2.*x + y);
[X,Y] = meshgrid(x,y);
Z1 = Eq1(X,Y);
Z2 = Eq2(X,Y);
D = (abs(Z2-Z1) > 0.5);
[Dr,Dc] = find(D); % Indices where D == 1
figure(1)
s1 = surf(X, Y, double(D));
colormap(winter(256))
view(0,90)
axis tight
colorbar

采纳的回答

Montree
Montree 2015-1-2
Use 'YTicklable' such as...
colorbars('YTicklabel',{'0','1'})
See more detail on matlab help.
  1 个评论
A
A 2015-1-2
Thanks - I'm almost there. I just need bit more help.
1) Can I change the 'color gradient' of the color bar so that it only shows the green and the blue? And nothing in the middle?
2) How can I make changes to the text style/position/placement of the 'more' and 'less'?
x = [-10:10];
y = [-10:10];
Eq1 = @(x,y)(x + y);
Eq2 = @(x,y)(2.*x + y);
[X,Y] = meshgrid(x,y);
Z1 = Eq1(X,Y);
Z2 = Eq2(X,Y);
D = (abs(Z2-Z1) > 0.5);
[Dr,Dc] = find(D); % Indices where D == 1
figure(1)
s1 = surf(X, Y, double(D));
colormap(winter(256))
view(0,90)
axis tight
colorbar('YTick',[0 1],'YTicklabel',{'Less','More'})

请先登录,再进行评论。

更多回答(1 个)

Image Analyst
Image Analyst 2015-1-3
Are you sure you want to Accept the other answer? Because it's not giving you the colormap I think you want. What I thought you wanted is this:
x = [-10:10];
y = [-10:10];
Eq1 = @(x,y)(x + y);
Eq2 = @(x,y)(2.*x + y);
[X,Y] = meshgrid(x,y);
Z1 = Eq1(X,Y);
Z2 = Eq2(X,Y);
D = (abs(Z2-Z1) > 0.5);
[Dr,Dc] = find(D); % Indices where D == 1
s1 = surf(X, Y, double(D));
view(0,90)
axis tight
blueAndGreenColormap = [repmat([0,0,1], [128,1]) ; repmat([0,1,0], [128,1])]
colormap(blueAndGreenColormap)
colorbar
Is this really wanted instead?
  8 个评论
Image Analyst
Image Analyst 2015-1-4
Try this:
clc; % Clear the command window.
close all; % Close all figures (except those of imtool.)
clear; % Erase all existing variables. Or clearvars if you want.
workspace; % Make sure the workspace panel is showing.
format long g;
format compact;
fontSize = 20;
x = [-10:10];
y = [-10:10];
Eq1 = @(x,y)(x + y);
Eq2 = @(x,y)(2.*x + y);
[X,Y] = meshgrid(x,y);
Z1 = Eq1(X,Y);
Z2 = Eq2(X,Y);
D = (abs(Z2-Z1) > 0.5);
[Dr,Dc] = find(D); % Indices where D == 1
s1 = surf(X, Y, double(D));
view(0,90)
axis tight
blueAndGreenColormap = [repmat([0,0,1], [128,1]) ; repmat([0,1,0], [128,1])]
colormap(blueAndGreenColormap)
hCB = colorbar('YTick',[0.05 .95], 'YTicklabel',[], 'FontSize', 17, 'FontName', 'Calibri')
text(13, -7, 'More Less', 'FontSize', 17, 'Rotation',90);
Image Analyst
Image Analyst 2015-1-5
"A"'s "Answer" moved here to be a comment since it's not an "Answer" to the original question.
That works. Thanks!

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Data Distribution Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by