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
답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Colormaps에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!