MATLAB绘图基础12:地理信息可视化

ops/2024/12/20 8:33:58/

参考书:《 M A T L A B {\rm MATLAB} MATLAB与学术图表绘制》(关东升)。



12.地理信息可视化
12.1 地理散点图
  • 地理散点图用于可视化地理坐标点分布的图形,适用于在地图上显示离散地理坐标点,每个点可以代表不同的实体、地点或其他类型的观测值;

  • 地理散点图常用于标记地理位置、研究地理分布、城市规划、地理统计等领域;

  • 地理散点图基本绘制过程:

    matlab">% ch12_01.m
    clear;
    clc;% 1.创建模拟地理坐标数据;
    longitude = [12.0023, 30.9509, 20.0091, 40.9998, 50.1982];
    latitude = [-12.0091, -30.9982, -20.8901, -23.9910, -32.0213];
    cities = {'城市1', '城市2', '城市3', '城市4', '城市5'};% 2.创建地理散点图;
    figure;
    ax = usamap('conus');
    setm(ax, 'FFaceColor', [0.9 0.9 0.9]);          % 设置地图背景颜色% 3.添加地理底图;
    geoshow('landareas.shp', 'DisplayType', 'polygon', 'facecolor', [0.6 0.6 0.6]);
    hold off;geoscatter(latitude, longitude, 'r', 'filled');% 4.使用text函数添加城市名称标签
    for i = 1:numel(cities)text(latitude(i), longitude(i), cities{i}, 'VerticalAlignment', 'bottom', 'HorizontalAlignment', 'left');
    end% 5.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch12_01.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    1

12.2 地理密度图
  • 地理密度图用于显示地理空间上的数据点的密度分布,通常用于表示在特定地理区域内的数据点的集中程度;

  • 地理密度图可以帮助用户识别地理上的热点区域或稀疏区域;

  • 地理密度图绘制基本过程:

    matlab">% ch12_02.m
    clear;
    clc;% 1.创建模拟地理坐标数据;
    longitude = [12.0023, 30.9509, 20.0091, 40.9998, 50.1982];
    latitude = [-12.0091, -30.9982, -20.8901, -23.9910, -32.0213];
    cities = {'城市1', '城市2', '城市3', '城市4', '城市5'};
    population = [898982, 569871, 345878, 568970, 498378];% 2.创建地理密度图;
    figure;
    ax = usamap('conus');
    setm(ax, 'FFaceColor', [0.9 0.9 0.9]);          % 设置地图背景颜色% 3.添加地理底图;
    geoshow('landareas.shp', 'DisplayType', 'polygon', 'facecolor', [0.6 0.6 0.6]);
    hold off;geodensityplot(latitude, longitude, population, 'FaceColor', 'interp');% 4.标题、颜色栏等信息;
    colormap(autumn);
    c = colorbar;
    c.Label.String = '人口密度';
    title('城市人口地理密度图');
    

    2

12.3 地理线图
  • 地理线图常用于可视化连接地理位置的线条或路径,可用 g e o p l o t 、 g e o s h o w 、 p l o t m {\rm geoplot、geoshow、plotm} geoplotgeoshowplotm函数创建地理线图;

  • 地理线图基本绘制过程:

    matlab">% ch12_03.m
    clear;
    clc;% 1.创建模拟地理坐标数据;
    longitude = [12.0023, 30.9509, 20.0091, 40.9998, 50.1982];
    latitude = [-12.0091, -30.9982, -20.8901, -23.9910, -32.0213];% 2.创建地理线图;
    figure;
    ax = usamap('conus');
    setm(ax, 'FFaceColor', [0.9 0.9 0.9]);          % 设置地图背景颜色% 3.添加地理底图;
    geoshow('landareas.shp', 'DisplayType', 'polygon', 'Facecolor', [0.6 0.6 0.6]);
    hold off;
    geoplot(latitude, longitude, 'b', 'LineWidth', 2, 'Color', [0 0 1 0.5]);% 4.标题;
    title('城市间地理线图');% 5.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch12_03.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    3

12.4 地理气泡图
  • 地理气泡图常用于显示地理位置相关的数据,地理气泡图将地理位置数据以气泡的形式标记在地图上,每个气泡的大小、颜色或透明度常代表与该地理位置相关联的数据属性;

  • 地理气泡图基本绘制过程:

    matlab">% ch12_04.m
    clear;
    clc;% 1.创建模拟地理坐标数据;
    longitude = [12.0023, 30.9509, 20.0091, 40.9998, 50.1982];
    latitude = [-12.0091, -30.9982, -20.8901, -23.9910, -32.0213];
    cities = categorical(["城市1", "城市2", "城市3", "城市4", "城市5"]);
    population = [898982, 569871, 345878, 568970, 498378];% 2.创建地理气泡图;
    figure;
    geobubble(latitude, longitude, population, cities);% 3.标题;
    title('城市人口分布地理气泡图');
    

    4

12.5 等高线图
  • 等高线图通过等高线线条表示数据的等值线,等高线图用于显示地形、地势、气象数据、温度分布、电磁场等数据;

  • 等高线图基本绘制过程:

    matlab">% ch12_05.m
    clear;
    clc;% 1.生成坐标数据矩阵;
    [X, Y] = meshgrid(-3:0.1:3);
    Z = X.*exp(-X.^2 - Y.^2);% 2.绘制等高线图;
    contour(X, Y, Z, 50);% 3.标题、标签;
    xlabel('X');
    ylabel('Y');
    title('等高线图');% 4.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch12_05.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    5

  • 模拟火山地形图的等高线图绘制:

    matlab">% ch12_06.m
    clear;
    clc;% 1.读取CSV文件并创建表格
    data = readtable('ch12_06.csv');% 2.从表格中提取数值数据并转化为双精度矩阵
    volcano = table2array(data);% 3.颜色映射
    colormap(parula);% 4.创建等值线图
    contourLevels  = 20;
    contour(volcano, contourLevels , 'ShowText', 'on');
    colorbar;% 5.标签、标题;
    xlabel('X');
    ylabel('Y');
    title('火山地形图');% 6.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch12_06.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    6


http://www.ppmy.cn/ops/143430.html

相关文章

Spring Cloud Nacos 配置管理

Spring Cloud Nacos Nacos全称Dynamic Naming and Configuration Service,它可以用于RPC框架中服务的注册与发现,也可以作为配置中心管理应用的配置. 服务注册与发现 使用过RPC框架同学对服务注册与发现并不陌生,比如Dubbo默认使用Zookeeper作为注册中心…

01、NodeJS学习笔记,第一节:Node.js初识与内置模块

一、初识Node.js与内置模块 ##网址 https://nodejs.org##npm包 https://www.npmjs.com/ (搜索)https://registry.npmjs.org/ (下载)1、初识Node.js ##思考:为什么JavaScript可以在浏览器中被执行因为浏览器…

C++中如何实现单例模式?

单例模式(Singleton Pattern)是一种设计模式,旨在确保一个类只有一个实例,并提供全局访问点。在 C 中实现单例模式有多种方式,下面介绍几种常见的实现方法。 1. 饿汉式(线程安全) 饿汉式是指在程…

WPF ControlTemplate 控件模板

区别于 DataTemplate 数据模板,ControlTemplate 是控件模板,是为自定义控件的 Template 属性服务的,Template 属性类型就是 ControlTemplate。 演示, 自定义一个控件 MyControl,包含一个字符串类型的依赖属性。 pub…

BOE(京东方)“向新2025”年终媒体智享会首站落地上海 六大维度创新开启产业发展新篇章

12月17日,BOE(京东方)以“向新2025”为主题的年终媒体智享会在上海启动。正值BOE(京东方)新三十年的开局之年,活动全面回顾了2024年BOE(京东方)在各领域所取得的领先成果,深度解读了六大维度的“向新”发展格局,同时详细剖析了BOE(京东方)在智能制造领域的领先实践。BOE(京东方…

复习打卡大数据篇——Hadoop HDFS 01

目录 1. HDFS简介 2. HDFS基本操作 3. HDFS原理 1. HDFS简介 HDFS概念: HDFS是一个分布式的文件系统。分布式意味着多台机器存储,文件系统,就是用来存储文件、存储数据。是大数据最底层一个服务。 HDFS设计目标: 故障的检测…

ZZNUOJ 1601:字母序号(C/C++/Java)

题目描述 我们把字母 A-Z 分别编号为 1-26, 现在给你一个大写字母, 输出这个大写字母的序号。 输入 输入一个大写字母 输出 输出这个大写字母的序号 样例输入 C 样例输出 3 常见的ASCII值 ASCII表中可以记下部分特殊的值(十进制)(字母从A到Z,从a到z,ASCII值依次递增)

linux 下nmcli命令使用方法

1、nmcli 是 NetworkManager Command Line Interface 的缩写。 详细解释 NetworkManager: 是 Linux 上常用的网络管理工具,负责管理有线、无线、VPN 等网络连接。 Command Line Interface (CLI): 意味着 nmcli 是 NetworkManager 的命令行界面工具,提…