最近需要绘制论文中研究区域概况图。我个人比较喜欢基于ArcMap与PPT结合的方式来绘制,具体操作如下。...这里提一句:需要注意,绘制地图时(尤其是论文中地图),一定注意南海诸岛、十段线、藏南、阿克赛钦等我国固有领土的细节部分。 先来看看成果图: ? 话不多说,开始绘制,首先我们先做副图。...接下来,我们进行主图的绘制。导入研究区域与水体等相关图层,并配置符号系统。 ? 导入指北针、比例尺、图例等。 ? 我的比例尺属性设置情况如下。 ? 接下来,我们需要设置图片边框上的格网。...然后在以下界面,修改经纬度格网符号出现的区域;因为不用一幅图的四个边框都带着经纬度,会显得比较臃肿,选择其中的两条边即可。 ? 为了美观,将格网伸出的那一条线朝向图片内部。 ? ...最终成图如下: ? 然后将其导出即可。主图的dpi可以设置稍微大一点,分辨率高一些。然后将新生成的图同样导入到PPT中。 ? 随后,我们用箭头来显示主图与副图的关系。 ? 如下所示。
本文介绍在ArcGIS下属的ArcMap软件中,将绘制好的地图导出为.ai或者.eps格式文件,并在Adobe Illustrator软件中进一步编辑地图,并最终导出为图片格式的结果文件的方法。 ...在ArcMap软件中绘制各类地图可以说非常方便,绘制得到的地图也可以调整得较为美观、标准;在之前的推文ArcGIS绘制论文研究区域概况图中,我们就介绍了基于ArcMap软件与PPT软件,绘制研究区域示意图的方法...而除了用PPT对ArcMap软件绘制完毕的地图加以进一步修改之外,我们还可以通过Adobe Illustrator软件,对绘制完毕的地图加以更为细致、方便地修改,本文就对这一方法加以介绍。 ...首先,在ArcMap软件中绘制完毕地图后,我们选择“File”→“Export Map”选项,如下图所示。
概述 在我的上一篇博客:图的遍历(上)——邻接矩阵 中主要介绍了邻接矩阵的BFS和递归的DFS与非递归的DFS这3种遍历算法。在这篇博客我将主要叙述邻接表的以上3中遍历算法。...首先来看看邻接表的表示方法。 邻接表主要是针对稀疏图中邻接矩阵造成的空间浪费而提出的。下面我们来看看邻接表的表示。 1)无向图的表示 ? 2)有向图 ?...(说明:对于BFS,DFS的递归与非递归算法在这篇文章就不再重复,如有不了解请移步我的上一篇博客:图的遍历(上)——邻接矩阵 ) ---- 广度优先遍历(BFS) //广度优先遍历(BFS) void...isvisited,0,sizeof(this->isvisited[0])*(this->Nv+1)); cout<<"请输入顶点:"<<endl; //依次构造图的结点...this->Edgelist[i]->Create(vertex); } cout<<"请输入边:"<<endl; //依次构造无向图的边
在往期推文中,我们曾利用nc地形数据、tif地形数据及png非矢量图等绘制过研究区域DEM地形图,在此不再累述,请感兴趣者在往期推文中自行检索源代码(无脑替换数据即可)。...---- 作图代码如下: 注:请读者参考往期推文并借助basemap&cartopy绘制地图 import numpy as np import matplotlib.pyplot as plt from
闲来没事看博客,看到这个主题还不错,分享给读者 先看效果图 带填充纹理的堆叠图是通过在原始堆叠图的基础上添加不同的纹理得到的,可以很好地解决由于颜色区分不够而导致的对象识别困难问题。...由于Matlab中未收录提供填充纹理选项,因此给出一个自行开发的代码来实现该功能, 1、柱状图填充 clc close all clear %% Example 1:柱状图填充 figure(1); h...HatchAngle',0); hatchfill2(hp(2),'cross','HatchAngle',45); hatchfill2(hp(3),'single','HatchAngle',90); 2、饼图填充...clc close all clear %% Example 2:饼图填充 figure(3); colormap(cool(4)); h = pie(rand(4,1)); th = findobj
在许多图论的题目中,我们首先要存图,之前我已经学习了用邻接矩阵存图 ,但是看许多大佬都是用邻接表存图,觉得还是学习下好! 那么我们经过一个例题来学习 邻接链表存图。 有N个点,从 1 到 N 。...namespace std; struct node{ int v; int next; }a[maxn]; int n,m,p;//p为数组的空余空间下表 int k[5001],c[5001];//邻接链表表头...,k数组记长度 void add(int u,int v){ // 把 v点插入到 u点的邻接链表 a[++p].v = v; //申请一个新节点 a[p].next = c[u]; c
这篇文章主要来讲一下邻接矩阵 邻接表 链式前向星(本篇需要具备一定图的基础知识,至少邻接矩阵之前要会,这里主要讲解邻接表和链式前向星) 我不大喜欢说废话,所以直接上图 邻接矩阵:用二维数组存储点与点之间的关系...没错,所以在一定程度上,我认为邻接表其实就是邻接矩阵把那些没必要的点给扣掉。...book[V[i].edge[j].index]=true; } } } 边集数组 在讲链式前向星之前提一嘴这个,其实这个就是BellMan-Ford算法的存图方法...细看操作 首先来看边的结构 假如,我们有一个无向图 假如说,我们输入一条边: 1 2 5 那这个时候,我们把e[0]的to设置为2,w设置为5。...当然如果你要弄成无向图的话,再反过来添加就可以了 如果是无向图的话,插入第一个点是这样的 然后,我们把1 4 3插入(这个图因为是无向图,所以这个地方,e的下标是2) 所以说这个插入顺序和链接顺序有点像栈
之前讲过,邻接矩阵表示法会浪费很多的空间,那么我们可以采用邻接表表示法来节省空间。 邻接表表示法适用于表示边数较少的稀疏图。...在c++中可以通过vector来较为方便地实现邻接表 代码大概是下面这样子的: vector G[100005]; G[u].push_back(v);//从u向v画边 //搜索与u相邻的顶点
图的邻接矩阵存储结构 一、知识框架 二、存储方式(这里只讨论邻接矩阵存储方式) 在图的邻接矩阵存储结构中,顶点信息使用一维数组存储,边信息的邻接矩阵使用二维数组存储。...无向图和其对应的邻接矩阵 有向图 三、代码实现 1.头文件AdjMGraph.h 针对的是下面这个有向图 #pragma once //图的邻接矩阵存储结构 #include "SeqList.h...,就是邻接矩阵的顶点v行中 从第一个矩阵元素开始的非0且非无穷大的顶点 */ int GetFirstVex(AdjMGraph G, int v) //在图G中寻找序号为v的顶点的第一个邻接顶点 //...对于邻接矩阵存储结构来说,顶点v1的邻接顶点v2的下一个邻接顶点,就是邻接矩阵的顶点 v行中从第v2+1个矩阵元素开始的非0且非无穷大的顶点 */ int GetNextVex(AdjMGraph G..., int v1, int v2) { //在图中寻找v1的顶点的邻接顶点v2的下一个邻接顶点 //如果这样的邻接顶点存在,则返回该邻接顶点的序号,否则返回-1 //v1和v2都是相应顶点的序号
呃,下面该写邻接表了……. 邻接表的出现是因为图若是稀疏图,用邻接矩阵会造成空间的浪费,毕竟你要开辟一个一维数组和一个二维数组嘛,而且还是大开小用的那种。...下面是一个无向的网图: 邻接表中数据的存储图示如下(emmm,无向图果然没有有向图好画): emmm,终于画完了,我来介绍下这个图 顶点表也就是个结构体数组,是存放顶点的结构,顶点表中有data元素...看着上面的图慢慢理解吧!...int numvertex; //当前邻接表的顶点数 int numarc; //当前邻接表的边数 }GraphAdjList; //建立图的邻接表 void CreateAdjListGraph...(GraphAdjList &G) { ArcNode *e; cin >> G.numvertex; //输入当前图的顶点数 cin >> G.numarc; //输入当前图的边数
邻接矩阵的数组表示法 无向图的邻接矩阵 无向图的邻接矩阵特点 顶点i的度 求顶点i的所有邻接点 有向图的邻接矩阵 求顶点i的入度 求顶点i的出度 如何判断顶点i到顶点j是否存在边 网图的邻接矩阵 网图定义...:每条边带有权的图叫做网 邻接矩阵的无向图类 邻接矩阵中图的构造函数
ggforce是ggplot2的扩展包,“擅长”于根据数据绘制轮廓以及区域放大。先将整体分为几个重要的“版图”,然后根据“线索”重点放大后在此区域进行精细“搜寻”,最终找到“ONEPIECE”!?...二 ggforce绘制轮廓 1 添加轮廓 geom_mark_...()系列函数能够非常简单的围绕数据组绘制轮廓,以下四个参数可以绘制不同的轮廓: geom_mark_circle() geom_mark_ellipse...,此时就需要geom_mark_hull()函数来围绕数据组的轮廓绘制更复杂的多边形。...三 ggforce区域放大 如果“宝藏”的区域就在上述的位置之一(全图展示),现在发现更可能在某个区域,那就使用facet_zoom()函数放大或聚焦在特定区域。...1 xlim和ylim设置聚焦区域 选择左下角的Pacific/Honolulu区域进行展示 #xlim和ylim,基于坐标聚焦区域 p + facet_zoom(xlim = c(-155, -160.5
/** * 边节点(由一条边和一个终止节点构成) */ class ENode{ int id;// 终止节点的编号 int weight;// 边的权重 } 图的邻接表示 图用一个
邻接矩阵存储有向图 【输入描述】 输入文件包含多组测试数据,每组测试数据描述了一个无权有向图。...每组测试数据第一行为两个正整数n和m,1图的顶点数目和边的数目,顶点数从1开始计起。...【输出描述】: 对输入文件的每个有向图,输出两行:第一行为n个正整数,表示每个顶点的出度;第2行也为n个正整数表示每个顶点的入度。...include 2 #include 3 #define MAXN 100 //顶点个数最大值 4 int Edge[MAXN][MAXN]; //邻接矩阵...{ 17 scanf(" %d%d",&u,&v); //读入边的起点与终点 18 Edge[u-1][v-1] = 1; //构造邻接矩阵
概述 图作为数据结构书中较为复杂的数据结构,对于图的存储方式分邻接矩阵和邻接表两种方式。在这篇博客中,主要讲述邻接矩阵下的图的深度优先遍历(DFS)与广度优先遍历(BFS)。...---- 广度优先遍历(BFS) BFS 算法的思想是:对一个无向连通图,在访问图中某一起始顶点 v 后,由 v 出发,依次访问 v 的所有未访问过的邻接顶点 w1, w2, w3, …wt;然后再顺序访问...w1, w2, w3, …wt 的所有还未访问过的邻接顶点;再从这些访问过的顶点出发,再访问它们的所有还未访问过的邻接顶点,……,如此直到图中所有顶点都被访问到为止。...i++; } } } ---- 深度优先遍历(DFS)——递归版本 递归算法: 1)访问起点v0 2)依次以v0的未访问的连接点为起点,DFS搜索图,...3)若该图为非连通图,则图中一定还存在未被访问的顶点,选取该顶点为起点,重复上述DFS过程,直至图中全部顶点均被访问过为止。
本博客前面文章已对图有过简单的介绍,本文主要是重点介绍有关图的一些具体操作与应用 阅读本文前,可以先参考本博客 各种基本算法实现小结(四)—— 图及其遍历 一、无向图 1 无向图——邻接矩阵...========================================================== 2 无向图—— 邻接表 测试环境:VS2008 #include "stdafx.h
struct vnode//顶点表 { VertexType vertex;//顶点域 EdgeNode* firstedge;//边表头指针 }VertexNode; typedef struct//邻接表...InsertNode(G, i, j); InsertNode(G, j, i); } return G; } void DFSAL(ALGraph G, int i) //以Vi为出发点对图G...<< " ";//访问顶点Vi visited[i] = 1;//标记Vi已访问 p = G.vexs[i].firstedge;//取Vi边表的头指针 while (p)//依次搜索Vi的邻接点...if (visited[p->adjvex] == 0)//若Vj尚未访问,则以Vj为出发点继续搜索 DFSAL(G, p->adjvex); p = p->next;//找Vi的下一个邻接点...visited[i] == 0) DFSAL(G, i);//Vi未访问过,从Vi开始搜索 } int main() { ALGraph G = CreateALGraph(); cout 图的深度优先搜索遍历得到的顶点序列为
引言 图是一种常见的数据结构,用于表示对象之间的关系。在图的表示方法中,邻接表是一种常用的形式,特别适用于稀疏图。 本实验将介绍如何使用邻接表表示图,并通过C语言实现图的邻接表创建。 2....邻接表表示图的原理 2.0 图的基础知识 a. 类型 图(Graph)是由节点(Vertex)和节点之间的边(Edge)组成的一种数据结构。图可以用来表示不同对象之间的关系或连接方式。...表示 图可以用多种方式表示,常见的有邻接矩阵(Adjacency Matrix)和邻接表(Adjacency List)两种形式。 邻接矩阵是一个二维数组,用于表示节点之间的连接关系。...对于有向图,邻接矩阵的元素表示从一个节点到另一个节点的边的存在与否;对于无向图,邻接矩阵是对称的。 邻接表是一种链表数组的形式,用于表示每个节点和与之相连的边。...实验内容 3.1 实验题目 将邻接矩阵存储转换为邻接表存储 (一)数据结构要求 邻接表中的顶点表用Head 数组存储,顶点表中元素的两个域的名字分别为 VerName和 Adjacent,边结点的两个域的名字分别为
类似于下图这种,为分析结果添加显著性区域,该如何实现呢? 实现方式多种多样,比如: 1、代码。...Python、R、Matlab都有实现方式,但是绘制一幅优美的地图,用代码绘制,需要添加很多控制语句,学习成本太高,时间成本也很高 2、P值栅格转点,然后Arcmap制图。...但是栅格转点会很细碎,还需要很麻烦的去进行调节 3、手动勾绘区域,挺麻烦的,费时费力,还不准.
图的邻接矩阵的存储方式是用两个数组来实现的,一个一维数组存储顶点信息,一个二维数组存储线(无向图)或弧(有向图)的信息。...设图G有n个顶点,则邻接矩阵是一个n × n的方阵,定义为: 无向图的邻接矩阵,两个顶点有边则为1,否则,为0;因为是无向图arc[i][j] = arc[j][i],所以矩阵为对称矩阵,对角线为自己到自己的边...设图G有是网图,有n个顶点,则邻接矩阵是一个n × n的方阵,定义为: 无向网图和无向图差不多,就是加了权值,两个顶点之间无边的话距离是∞。 如果是有向图,邻接矩阵就不是对称矩阵了。...vertextype; //定义定点的存储信息为字符型 typedef int arctype; //定义边的权值为int型 //图的邻接矩阵的存储结构 typedef struct {...; //图的当前顶点数 int arcnum; //图的当前边数 }MGraph; 存储结构里面主要由四部分构成, 第一部分是一个一维数组存储的是顶点信息, 第二部分是邻接矩阵由二维数组组成,
领取专属 10元无门槛券
手把手带您无忧上云