查看: 146|回复: 1|关注: 0

[已解决] Matlab 不使用m_map的话如何生成带投影的等值面图?

[复制链接]

新手

10 麦片

财富积分


050


3

主题

6

帖子

0

最佳答案
发表于 2019-10-22 16:44:00 | 显示全部楼层 |阅读模式
我需要生成一张带墨卡托投影的等值面,以便于叠加在在线天地图上展示的时候沿海边界线能吻合
之前用m_map做过,但是将matlab代码导出成dll的时候,会出现外部程序调用报错的情况

想想一下,matlab不通过m_map的话,能够绘制出墨卡托投影的地图并在上面绘制等值面(同样需要带投影效果)
之前有看到axesm的例子,但是不是很明白,生成的图片四周会带白色边框,不便于验证是否带投影效果
请教一下是否有不适用m_map的情况下,也能叠加出带墨卡托投影图片的例子?
  1. %%%%%%4.设置投影(墨卡托)%%%%%%%%
  2. axesm('mercator','MapLatLimit',[double(nclat(1)) double(nclat(end))],'MapLonLimit',[double(nclon(1)) double(nclon(end))]);

  3. %%%%%5.便利时间和水深,生成图片%%%%%%%%%%%%%%%%%%%%%%   
  4. for t=1:length(nctime)
  5.     for level=1:length(ncz)
  6.         ncdata = ncdatas(:,:,level,t);                                                     %获取时间序号t,水深序号level下的要素数据
  7.         [C, h] = m_contourf(nclon,nclat,ncdata');                                   %绘国界%绘制等值面+等高线
  8.         geoshow(shpFile1,'FaceColor',[0.8 0.8 0.8]);                               %叠加中国轮廓图
  9.         %axis([nclon(1) nclon(end) nclat(1) nclat(end)]);                        %设置视野
  10.         set(gcf, 'Position',[0,0,imgWidth,imgHeight],'color',[1 1 1]);          %设置图片大小及底色
  11.         set(gca, 'position', [0 0 1 1],'color', [1 1 1]);                                %坐标边框宽度
  12.         set(gca,'color',[1 1 1]);                                                              %坐标边框颜色
  13.         set(gca,'xtick',[],'ytick',[]);                                                         %去掉xy轴的刻度
  14.         axis off;                                                                                   %去掉坐标轴
  15.         
  16.         saveas(gcf, [imgPath,imgName,'_',num2str(t-1),'_',num2str(ncz(level)),'.png']);     %保存图片
  17.         clf                                                                                 %刷屏
  18.     end
  19. end
复制代码


新手

10 麦片

财富积分


050


3

主题

6

帖子

0

最佳答案
 楼主| 发表于 2019-10-28 16:52:19 | 显示全部楼层
已解决,使用axesm+contourfm
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表