Keeping colors consistent between figures

2 次查看(过去 30 天)
Hello, I have basic MATLAB (2012b), and no toolboxes. I've written the below program (with help) to plot data over a map, and turn the contours transparent so the map below can be seen. I used the contourfcmap (can be found on MATLAB Central, I added varargout{1} = c; and varargout{2} = h; to the end of the function to return c, h), which initially makes the figure have consistent colors, but once I use clabel the colors revert to whatever colormap it wants. I also tried commenting out the clabel part, and when I do this the findobj/facealpha now changes the colors back. I'd like to have the same color levels between figures (so 30-35 m/s is always colored the same color). Is there a way to make clabel and findobj use the same colormap I used in contourfcmap?
for da_month = 1:2 for da_level = 1:2
if da_month == 1, da_month2 = 'January'; da_month3='1'; end;
if da_month == 2, da_month2 = 'February'; da_month3='2'; end;
if da_level == 1, da_level2 = '10mb'; end;
if da_level == 2, da_level2 = '30mb'; end;
file_str = ['c:\data2\mid_east_month_' da_month3 '_hr_24_lvl_00' da_level2 '.csv'];
B = xlsread(file_str); %read in the wind data from excel
da_grid = zeros(25, 49); %initialize matrix with zeros
V = [0:5:60]; %vector of levels for contouring
for i = 1:25 %convert lat/lon data in column form to x,y grid
for j = 1:49
row_num = j + i*49 - 49;
da_grid(i,j) = B(row_num,10);
end
end
lon = 30:2.5:150; %vector of longitude values
lat = 55:-2.5:-5; %vector of latitude values
lat = lat'; %transpose to column vector
cfig = figure('Position', [100, 100, 1400, 800]); %set position of figure on screen
da_map = 'c:\data2\the_map.gif'; %line map of the region
[I,Imap] = imread(da_map); %read in the map
Itc = ind2rgb(I,Imap); % convert image with indexed colors to true color image
ih = image('XData',lon([1 end]),'YData',lat([1 end]),'CData',Itc); %show image
hold on; %now do the data contours
[c, h] = contourfcmap(lon, lat, da_grid, V, jet(12));
set(gca, 'Ytick', -5:5:55);
set(gca, 'xtick', 30:10:150);
cl = clabel(c,h,'FontSize',8,'BackgroundColor','w'); %make contour labels
for i=cl'
istring = get(i,'String');
set(i,'String',[istring(:)', ' m/s']);
end
chf = findobj(h,'-property','FaceAlpha');
set(chf,'FaceAlpha',.3)
yl = ylabel('Latitude (degrees)');
xl = xlabel('Longitude (degrees)');
da_title = [da_month2 ' ' da_level2 ' Wind Speed (m/s)'];
title(da_title);
hold off;
da_title = ['c:\data2\wind_speed_' da_month2 '_' da_level2];
print(gcf, '-djpeg', '-r500', da_title);
close
end
end

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Colormaps 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by