Matlab地图绘制教程第5期—分组散点地图

在之前的文章中,分享了散点地图的绘制方法:

进一步,再来分享一下分组散点地图的绘制方法。

先来看一下成品效果:

特别提示:Matlab地图绘制教程系列,旨在降低大家使用Matlab进行地图类科研绘图的门槛,只需按照模板格式添加相应内容,即可得到满足大部分期刊以及学位论文格式要求的数据插图。如果觉得有用可以分享给你的朋友。


1. 数据准备

此部分主要是读取原始数据并初始化绘图参数

复制代码
% 读取数据load GEOScatter0.matfigdata = imread('E:\NE1_50M_SR_W.tif');% 初始化绘图参数X = xx;Y = yy;GP = cc;markers = {'^','v','o'}; % 只展示3组数据

2. 颜色定义

作图不配色就好比做菜不放盐,总让人感觉少些味道。

但颜色搭配比较考验个人审美,需要多加尝试。

这里直接使用GEOColor地球科学配色包

复制代码
C = GEOColor('kkk',[447 61 83]);

3. 分组散点地图绘制

调用'm_scatter'命令,绘制分组散点地图。​​​​​​​

复制代码
m_proj('Miller Cylindrical','lon',0,'lat',[-85 85]);hold onm_image([-180 180],[90 -90],figdata);for i = 1:3    temp = find(GP==i);    xtemp = X(temp,1);    ytemp = Y(temp,1);    S(i) = m_scatter(xtemp, ytemp, 30, markers{i},'filled', ...        'MarkerFaceColor',C(i,:), ...        'MarkerEdgeColor','w');endhTitle = title('GEO Grouped Scatter Plot');hXLabel = xlabel('Longtitude');hYLabel = ylabel('Latitude');

4. 细节优化

为了插图的美观,对坐标轴细节等进行美化:​​​​​​​

复制代码
m_grid('box','fancy', ...             % 边框    'linestyle','--', ...             % 网格线型    'linewidth',0.5, ...              % 坐标轴线宽    'gridcolor',[0.8 0.8 0.8],...     % 网格线颜色    'tickdir','in', ...               % 刻度方向    'ticklen',0.01,...                % 刻度长度    'FontName','Arial', ...           % 刻度标签字体    'FontSize', 10,...                % 刻度标签字号    'Ytick',-80:40:80);% LegendhLegend = legend([S(1),S(2),S(3)], ...                 'Cluster1','Cluster2', 'Cluster3',...                 'Location', 'southeast',...                 'Color',[0.9 0.9 0.9]);% 字体和字号set([hXLabel, hYLabel, hLegend], 'FontSize', 11, 'FontName', 'Arial')set(hTitle, 'FontSize', 12, 'FontWeight' , 'bold')% 背景颜色set(gcf,'Color',[1 1 1])

设置完毕后,以期刊所需分辨率、格式输出图片。

复制代码
figW = figureWidth;figH = figureHeight;set(figureHandle,'PaperUnits',figureUnits);set(figureHandle,'PaperPosition',[0 0 figW figH]);fileout = 'test';print(figureHandle,[fileout,'.png'],'-r300','-dpng');

以上。

相关推荐
tryCbest11 分钟前
Python之Flask开发框架(第一篇) — 从安装到第一个应用
开发语言·python·flask
q54314708713 分钟前
Java进阶总结——集合
java·开发语言
啥咕啦呛15 分钟前
java打卡学习5:java基础学习
java·开发语言·学习
zhangzeyuaaa18 分钟前
Python getter/setter 正确用法详解
开发语言·python
南境十里·墨染春水26 分钟前
C++ 笔记 深赋值 浅赋值(面向对象)
开发语言·jvm·c++·笔记
Lyyaoo.38 分钟前
【JAVA基础面经】JAVA的面向对象特性
java·开发语言·windows
小温冲冲1 小时前
Qt WindowContainer 完整实战示例:QWidget 嵌入 QML
开发语言·数据库·qt
MyBFuture1 小时前
Halcon条形码与二维码识别全攻略
开发语言·人工智能·halcon·机器视觉
AI+程序员在路上1 小时前
新手进入嵌入式行业方法与方向选择
c语言·开发语言·单片机·嵌入式硬件
dovens1 小时前
GO 快速升级Go版本
开发语言·redis·golang