赞
踩
本篇介绍下m_map
中用于创建和管理颜色映射函数(m_colmap
)和 为轮廓图绘制颜色条的函数(m_contfbar
)。
m_colmap
函数用于创建和管理颜色映射(colormap)。颜色映射可以用来对数据进行可视化编码,例如在地图上显示温度、高度、速度等信息。
m_colmap
函数的一般形式如下:
cols=m_colmap(nme,m,ncol) % m_colmap Useful colormaps % m_colmap(NAME) returns an M-by-3 matrix containing the NAME colormap % where NAME is one of: % 'jet' : a perceptually uniform variation of the JET colormap. It % contains the multiple colours which make JET useful, while % avoiding the weird highlighting especially around yellow and % cyan. The colors begin with dark blue, range through shades % of blue, green, orange and red, and ends with dark red. % 'mBOD' : a modified blue/orange diverging colormap without white, % useful as a colorblind-friendly jet alternative % % 'diverging' : a blue/red diverging colormap % 'BOD' : a blue/orange diverging colormap % 'rBOD' : a different blue/orange colormap with gray in the middle % % 'odv' : an isoluminant map % 'cyclic2': a cyclic colormap (for angles) with two dark regions % 'cyclic1': a cyclic colormap (for angles) with one dark region % % 'land' : a topographic height (green-brown-white) shading % 'water' : blue shading for water (goes with 'land'). % 'gland' : a topographic height shading with more green % 'bland' : a topographic height shading with browns only. % % 'blue' : a perceptually useful blue shading (good for bathymetry) % 'green' : a perceptually useful green shading % 'chlorophyll': Enhanced green for chlorophyll (to red) % 'CBchlorophyll': Enhanced green for chlorophyll (to magenta) % <-colorblind friendly % % 'EK80' : a standard echo-sounder map. % 'chart': the standard chart colour (single color) % % and M is the same length as the current figure's colormap. If no % figure exists, the length of the default colormap is used. The % length can be explicitly specified with s_colmap(NAME,M). % % m_colmap('demo') demonstrates the colormaps. % % m_colmap(NAME,'step') returns a 256-color map in which colours are % perceptually bunched into 16 separate colours. This is useful % if you want to see "edges" in what would be an otherwise % smooth gradation (i.e. approaching the look of contouring). % % m_colmap(NAME,'demo') Gives a demo of this behavior % % m_colmap(NAME,'step',M) bunches into M colours.
其中,nme
选择一种颜色类型;m
颜色长度,不设置就自动用默认的,设置了就颜色条按区间进行分段;
m_map
的所有颜色类型可以通过下面一句代码查看:
m_colmap demo
m_colmap
函数的使用示例,示例数据可以从网盘获取,提取码:ofxi:
%% m_colormap clc;clear; ncFilePath = 'GLDAS_NOAH10_M.A200602.021.nc4'; lon = ncread(ncFilePath,'lon'); lat = ncread(ncFilePath,'lat'); soilmoi_data = ncread(ncFilePath,'SoilMoi0_10cm_inst'); [LN,LT]=meshgrid(lon,lat); m_proj('mercator','long',[69.5 105.5],'lat',[24.5 40.5]); % 在地图上绘制伪彩色图 m_pcolor(LN,LT, soilmoi_data'); colormap( m_colmap('jet') ); %colormap( m_colmap('jet',10) ); % 添加地图边界、标签和色标 m_gshhs('ic','color',[.5 .5 .5]) % 中等分辨率海岸线 m_gshhs('ir2','color','k') % 中等分辨率河流 m_grid('linestyle','none','tickdir','out'); colorbar;
对比下图可以发现,绘制在图右侧的颜色调划分上存在差异,这就是设置了m的差别,根据需要选择合适的命令参数,能够绘出更加符合的图示:
|
|
m_contfbar
函数用于添加色标,以显示地图上的等值线或填充的数据的颜色对应的数值范围。
m_contfbar
函数的一般形式是:
[ ax,h ] = m_contfbar(lon,lat,DATA,LEVELS) % M_CONTFBAR Draws a colour bar for contourf plots % M_CONTFBAR([X1,X2],Y,DATA,LEVELS) draws a horizontal colourbar % between the normalized coordinates (X1,Y) and (X2,Y) where % X/Y are both in the range 0 to 1 across the current axes. % Negative values can be used to position outside the axis. % % Differences from COLORBAR are: the bar is divided into solid % colour patches exactly corresponding to levels provided by % CONTOURF(DATA,LEVELS) instead of showing the whole continuous % colourmap, the parent axis is not resized, the axis can be made % as large or small as desired, and the presence of values % above/below contoured levels is indicated by triangular pieces % (MATLAB 2014b or later). % % M_CONTFBAR(X,[Y1,Y2],...) draws a vertical colourbar % % The DATA,LEVELS pair can also be replaced with CS,CH where % [CS,CH]=CONTOURF(DATA,LEVELS). % % M_CONTFBAR(...,'parameter','value') lets you specify extra % parameter/value pairs for the colourbar in the usual handle-graphics % way. Parameters you might set include 'xticks','xticklabels', % 'xscale','xaxisloc' (or corresponding y-axis parameters for % a vertical colourbar) and 'fontsize'. % % Additional parameter/value pairs allow special customization of the % colourbar: % 'axfrac' : width of the colourbar (default 0.03) % 'endpiece' : 'yes' (default) or 'no' show triangular % endpieces. % 'levels' : 'set' (default) shows a colourbar with exactly % the levels in the LEVELS argument. % 'match' shows only the subsect of levels actually % used in the CONTOURF call. E.g., if your data ranges % from (say) 121 to 192, and LEVELS=[10:10:300], % then only levels in 130:10:190 actually appear in both % the CONTOURF and the colourbar. % 'edgecolor' : 'none' removes edges between colors. % % [AX,H]=M_CONTFBAR(...) returns the handle to the axis AX and to % the contourobject H. This is useful to add titles, xlabels, etc. % % M_CONTFBAR(BAX,...) where BAX is an axis handle draws the colourbar % for that axis.
其中:
lon,lat
控制色标的位置,([lon1 lon2],[lat]…)表示横向色标;([lon1],[lat1 lat2]…)纵向色标;DATA
进行绘图的输入数据;axfrac
设置色标宽度 设置value数值;endpiece
设置结束端,yes 或 no;edgecolor
色标框边缘颜色,可以设置’r’ 、'g’等matlab内置颜色,也可以设置none;m_contfbar函数的使用示例(在官网示例上不断尝试修改):
m_proj('lambert','lat',[5 24],'long',[105 125]);
set(gcf,'color','w') % Set background colour before m_image call
caxis([-6000 0]);
colormap(flipud([flipud(m_colmap('blues',10));m_colmap('jet',118)]));
m_etopo2('shadedrelief','gradient',3);
m_gshhs_i('patch',[.8 .8 .8]);
m_grid('box','fancy');
ax=m_contfbar(.97,[.5 .9],[-6000 0],[-6000:100:000],'edgecolor','none','endpiece','no','axfrac ',0.1);
xlabel(ax,'meters','color','k');
示例运行结果,上边的可选参数可自行修改。
本篇介绍了用于创建和管理颜色映射函数(m_colmap
)和 为轮廓图绘制颜色条的函数(m_contfbar
),通过示例展示了各函数的基本用法,对于绘制常见地学图已经够用了,后面如果发现还有其它相关函数再进行补充。希望对绘图的你有所帮助
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。