How to display values from a colorbar on surface?

4 views (last 30 days)
Daniel
Daniel on 24 Feb 2012
Edited: Cedric on 23 Oct 2013
Hi everyone, I'm plotting a surface that shows frequency of appearence of clusters, I added a colorbar to make it easier to understand, but I'm facing some problems:
1. Can the colorbar have a label? like "number of hours the phenomena appears"?
2. Can the actual value of the variable be displayed on the graphic. I mean, with colorbar I see colours on the graphic, that correspond to a certain scale. Apart from the colours, is it possible to display the value as it is possible to do with contours?
Thanks a lot everyone, I copy the code I'm using next:
HS=RPHs; TP=RPTpr;
validi=HS>0&HS<50&TP<50&TP>0;
TP=TP(validi); HS=HS(validi);
figure(77) subplot(3,1,1) plot(HS,'.-') subplot(3,1,2) plot(TP,'.') subplot(3,1,3) plot(HS,TP,'.')
max_H=6;max_P=18; DH=0.1;DP=0.5; NGH=max_H/DH;NGP=max_P/DP; PH=[NGH,NGP]; for gH=1:NGH for gP=1:NGP PH(gH,gP)=length(find(HS>=DH*(gH-1)&HS<DH*gH&TP>=DP*(gP-1)&TP<DP*gP)); end end [PP,HH] = meshgrid(DP:DP:max_P,DH:DH:max_H);
%% Calcolo potenze ed energia
PH=(PH)/(sum(sum(PH)))*24*365; % Per quante ore l'anno ho un dato stato di mare
LL=PP.^2*9.81/2/pi; %lunghezze d'onda %[HH,LL] = meshgrid(DH:DH:max_H,DL:DL:max_L);
POT=((HH.^2).*PP); % Potenza nel piano H-P POT_SPEC=(1000*9.81^2)/(64*pi)/1000*POT; % 64 e non 32 se è Hs (kW/m) Potenza con coefficienti (H non è HS)
DEN_POT_TOT=(POT_SPEC.*PH); % Energia su ogni cluster di onde EN_ONDA_ORA=sum(sum(DEN_POT_TOT));
POT_AV=EN_ONDA_ORA/24/365; POS=num2str(round(POT_AV*100)/100);
%% Faccio grafici energia
scrsz = get(0,'ScreenSize'); figure('Position',[0.1*scrsz(3), 0.25*scrsz(4), 0.6*scrsz(3), 0.6*scrsz(4)]); PPL=['Frequency of appearance of Hi-Tj pairs - Rio de la Plata 09-11']; % subplot(2,2,1:2) title([PPL]) surface(PP,HH,PH) xlabel('Peak Period (s)') ylabel('Significant Wave Height (m)') axis([PP(1,1) 12 HH(1,1) 5]); set(gca, 'PlotBoxAspectRatio',[1 1 1]); colorbar set(gcf,'Renderer','Zbuffer') print ('-djpeg', '-r300', [PPL,'. Scatter frequenze.jpg'])
% subplot(2,2,3) figure('Position',[0.1*scrsz(3), 0.25*scrsz(4), 0.6*scrsz(3), 0.6*scrsz(4)]); title({'Frequency of appearance of Hi-Tj pairs in hours';['Average Power every linear metre = ',POS,' kW/m']}) %surface(HH,LL,PH') surface(PP,HH,DEN_POT_TOT) xlabel('Peak Period (s)') ylabel('Significant Wave Height (m)') axis([PP(1,1) 12 HH(1,1) 5]); caxis([0 1000]) set(gca, 'PlotBoxAspectRatio',[1 1 1]); colorbar set(gcf,'Renderer','Zbuffer') print ('-djpeg', '-r300', [PPL,'. En-Periodo.jpg']) % % subplot(2,2,4) figure('Position',[0.1*scrsz(3), 0.25*scrsz(4), 0.6*scrsz(3), 0.6*scrsz(4)]); title(['Average Power every linear metre = ',POS,' kW/m']) surface(LL,HH,DEN_POT_TOT) xlabel('Wave Length (m)') ylabel('Significant Wave Height (m)') axis([LL(1,1) 400 HH(1,1) 5]);caxis([0 1000]) set(gca, 'PlotBoxAspectRatio',[1 1 1]); colorbar set(gcf,'Renderer','Zbuffer') print ('-djpeg', '-r300', [PPL,'. En-Lungh.jpg'])
  1 Comment
Tom
Tom on 24 Feb 2012
I can't run your code- RPHs and RPTpr are undefined.
But, for the first part of your question, try something like:
C=colorbar;
C_y=get(C,'ylabel');
set(C_y,'String','number of hours the phenomena appears')

Sign in to comment.

Answers (0)

Categories

Find more on Colormaps in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!