- 积分
- 333
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2018-4-16
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
问题一:colorbar的设置
想画排放源的强度分布图,原数据的范围是0-20 g/s,为了更好将数据插值到地图上,就将原数据取了对数log10,由于原数据中有小于1的值,取对数后数据中出现负数,就将取对数后的整个数据加上数据中的最小值的绝对值(但不知道这样是否合理),这样所有的数据都变成正数,此时的数据范围为0-10,在利用contourf函数画出填充等高图,colorbar的刻度也为0-10,如图一所示
由于处理后的数据大部分集中在8-9之间,所以整个画面都呈现集中在红色,
那么想要将现在的colorbar显示为0-20该怎么办呢,如图二所示
想要得到这幅图中的colorbar,颜色分布均匀,colorbar的刻度是不等间距的。
之前也尝试过论坛里的设置不同等间距colorbar的帖子,如[url=【新提醒】MATLAB设置不等间距colorbar-编程作图-气象家园_气象人自己的家园 http://bbs.06climate.com/forum.p ... &highlight=colorbar]
但是这个是设置在数据范围内的不等间距的colorbar,所以想要请问大家怎么去设置colorbar?
问题二:
fid1 = fopen('E:\emis_huabei\lat.txt','rt'); % 写入文件路径
fid2 = fopen('E:\emis_huabei\lon.txt','rt');
XLAT = reshape(cell2mat(textscan(fid1,'%f','Delimiter',',')),[115,160]);原数据的结构是115*160,所以将经纬度改成115*160。
XLONG = reshape(cell2mat(textscan(fid2,'%f','Delimiter',',')),[115,160]);
cmax = max(max(aveNO2_61g_log_positive));
cmin = min(min(aveNO2_61g_log_positive));
lim = cmin:0.4:cmax;
m_contourf(XLONG,XLAT,NO2,lim);
hold on
infoL=shapeinfo('D:\matlab2015b\ditu\bou2_4\bou2_4l.shp');
infoP=shapeinfo('D:\matlab2015b\ditu\bou2_4\bou2_4p.shp');
ChinaL=shaperead('D:\matlab2015b\ditu\bou2_4\bou2_4l.shp');
ChinaP=shaperead('D:\matlab2015b\ditu\bou2_4\bou2_4p.shp');
bou2_4lx=[ChinaL(:).X];
bou2_4ly=[ChinaL(:).Y];
bou2_4px=[ChinaP(:).X];
bou2_4py=[ChinaP(:).Y];
m_proj('lambert','lon',[72 137],'lat',[16 55]);%只是调整地图的范围,画的图的范围没有调整。
m_plot(bou2_4lx,bou2_4ly,'k');
m_grid ('linestyle','none','tickdir','out');
hold on;
colormap('jet');
colorbar
读取了经纬度数据后,运用contourf函数作图,出来的是图一,横纵坐标没有显示经纬度,这个是怎么回事?此外m_grid也运行不出来,出现这样的错误:Error using patch Not enough input arguments.
|
|