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');

以上。

相关推荐
Blossom.1188 分钟前
探索边缘计算:赋能物联网的未来
开发语言·人工智能·深度学习·opencv·物联网·机器学习·边缘计算
饕餮争锋26 分钟前
feign.RequestInterceptor 简介-笔记
java·开发语言·笔记
huangyuchi.28 分钟前
【C++】智能指针
开发语言·jvm·c++·笔记·c++11·智能指针·shared_ptr
南玖yy44 分钟前
C/C++ 内存管理深度解析:从内存分布到实践应用(malloc和new,free和delete的对比与使用,定位 new )
c语言·开发语言·c++·笔记·后端·游戏引擎·课程设计
李匠20241 小时前
C++GO语言微服务基础技术②
开发语言·c++·微服务·golang
BUG制造机.1 小时前
Go 语言 slice(切片) 的使用
开发语言·后端·golang
柴薪之王、睥睨众生1 小时前
(自用)Java学习-5.12(Redis,B2C电商)
java·开发语言·学习
geovindu1 小时前
vue3: pdf.js 3.4.120 using javascript
开发语言·javascript·vue.js·pdf
Cuit小唐2 小时前
C++ 状态模式详解
开发语言·c++·状态模式
落羽的落羽2 小时前
【落羽的落羽 C++】stack和queue、deque、priority_queue、仿函数
开发语言·c++