利用matlab画中国地图的几种方法
03第三章Matlab绘图-Matlab教程
![03第三章Matlab绘图-Matlab教程](https://img.taocdn.com/s3/m/457b4aaef424ccbff121dd36a32d7375a417c63a.png)
subplot(m,n,p) —— 按从左至右,从上至下排列
行
列 绘图序号
第14页,共76页。
1 0.8 0.6 0.4 0.2
0 -0.2 -0.4 -0.6 -0.8
-1 0
subplot(1,3,1); plot(t,y) subplot(1,3,2); plot(t,y3) subplot(1,3,3); plot(t,y2)
[x,y,w,h]=MYaxis(4,4,0.02,0.03,0.05,0.08,0.1,0.1,i);
subplot('position',[x,y,w,h]) end
第19页,共76页。
4. 多窗口绘图
figure(n) —— 创建窗口函数,n为窗口顺序号。 t=0:pi/100:2*pi; y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5); plot(t,y) —— 自动出现第一个窗口 figure(2) plot(t,y1) —— 在第二窗口绘图 figure(3)
ezplot的调用格式:
ezplot(f) —这里f为包含单个符号变量x的符号表达式, 在x轴的默认范围
[-2*pi 2*pi]内绘制f(x)的函数图 ezplot(f,xmin,xmax) — 给定区间
ezplot(f,[xmin,xmax],figure(n)) — 指定绘图窗口绘 图。
第29页,共76页。
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
1
2
3
1.应用MATLAB进行地理三维地貌可视化和地形分析
![1.应用MATLAB进行地理三维地貌可视化和地形分析](https://img.taocdn.com/s3/m/78454f0d6c85ec3a87c2c570.png)
第17卷 增刊2 广西工学院学报 V ol117 Sup2 2006年12月 JOU RNAL O F GUAN GX IUN I V ER S IT Y O F T ECHNOLO GY D ec12006文章编号 100426410(2006)S220017203应用M AT LAB进行地理三维地貌可视化和地形分析唐咸远(广西工学院土建系,广西柳州 545006)摘 要:从M A TLAB软件强大的功能入手,讨论了M A TLAB中进行地理三维地貌可视化和地形分析的方法,并展望其在工程中良好的应用前景。
关 键 词:M A TLAB;三维地貌可视化;地形分析0 引言M A TLAB的含义是矩阵实验室(M A TR I X LABORA TOR Y)[1],自其问世以来,就以数值计算称雄。
其计算的基本单位是复数数组(或称阵列),使得该软件具有高度“向量化”。
经过十几年的完善和扩充, M A TLAB现已发展成为线性代数课程的标准工具。
由于它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得简捷、高效、方便,这是其它高级语言所不能比拟的。
在地理信息系统(G IS)中,地形的三维可视化通常是利用数字高程模型(D E M)来完成的,而D E M最常用表示方法为规则格网,它是将区域空间切分为规则的格网单元,每个格网单元对应一个数值,即高程值。
数学上可以表示为一个矩阵,在计算机实现中则是一个二维数组。
可见利用M A TLAB处理D E M数据,完成地形的三维可视化分析是切实可行的。
1 M AT LAB软件及其功能M A TLAB产品家族是美国M ath W o rk s公司开发的用于概念设计、算法开发、建模仿真、实时实现的理想的集成环境,已广泛地应用在航空航天,金融财务,机械化工,电信,教育等各个行业。
该软件的主要特点包括:1)有高性能数值计算的高级算法,特别适合矩阵代数领域;2)有大量事先定义的数学函数,并且有很强的用户自定义函数的能力;3)有强大的绘图功能以及具有教育、科学和艺术学的图解和可视化的二维、三维图;4)基于H TM L完整的帮助功能;5)适合个人应用的强有力的面向矩阵(向量)的高级程序设计语言;6)与其它语言编写的程序结合和输入输出格式化数据的能力;7)有在多个应用领域解决难题的工具箱。
利用matlab画中国地图的几种方法
![利用matlab画中国地图的几种方法](https://img.taocdn.com/s3/m/b163ca58ff4733687e21af45b307e87101f6f8c2.png)
利用matl ab画中国地图的几种方法1、下载 ar c_map.zip,内有/s hape_files/chin a.shp文件,地址如下:http://ven us.un ive.i t/mat did.p hp?ut ente=smagr ini&b ase=e c++ur bana+e+reg ional e+-+a a+2008-2009%2F primo+modu lo%2F labor atori o+mat lab&c md=di r2、代码:f igure;inf o = s hapei nfo('china.shp')S = shap eread('chi na.sh p');mapsh ow(S);文件中可能还有更多地理,统计信息。
只是地图政治不正确,没有宝岛。
南沙在。
如何在MA TLAB中绘制中国地图了呢?下面介绍两种方法。
第一种方法是利用m_map工具箱。
该工具箱需要自己下载安装,下载的地址是htt p://w ww.eo s.ubc.ca/~rich/map.h tml。
m_map是一个功能很强大的工具箱,它提供多种投影方式,而且用法也很简单,容易上手,更重要的是,利用它可以很方便地绘制自己的数据。
有兴趣的读者可以参阅它的使用说明。
就在上述的网址上就有。
但是m_ma p提供的边界数据使用起来很不方便,数据是按照国家单个给出的,如果想画出世界各国的边界,就需要把每个国家的数据都下载下来,很麻烦。
网上有如何利用m_map来绘制行政边界的说明,例如下面的这个地址的作者就提供了一个具体的操作方法:将下载的.shp文件通过ma pinfo转换成.d xf文件,利用已编译好的for tran程序,读取经纬度信息,输出.da t文件。
matlab画图常用命令
![matlab画图常用命令](https://img.taocdn.com/s3/m/63ffc35ca517866fb84ae45c3b3567ec102ddcad.png)
matlab画图常用命令clc 清理命令窗口历史内容clear 清除所有内存存储的变量值clf 清除图形whos 显示各变量信息sqrt 开方edit 开编辑窗口linspace(a,b,N) 定义等差数列,a初值,b末值,N步数(即数据个数)logspace(a,b,N) 定义等比数列,初值10^a,末值10^b,N步数(即数据个数)A.*B 矩阵点乘,对应项相乘A./B 矩阵点除A.^B 矩阵点方(指数相同也要用点方)A=[a:n:b] 定义以a为开始,步长为n的等差数列,最后一个数不超过b(n省略代表步长为1)A' 矩阵转置A=[B,C;D] 矩阵拼凑e *10^exp e^format long 后续数据显示小数点后15位format short 后续数据显示小数点后4位format bank 后续数据显示小数点后2位(不适用于复数)format long/short e 后续数据科学技术法显示,并且小数点后15位/4位format long/short eng 后续数据类似科学技术法显示,但指数保持为3的整数倍,并且有效位数(15位+1/4位+1)format + 矩阵中各元素只显示正负,零为空格format rat 以分数形式显示有理数format long/short g Matlab自定最优显示load/save +文件名载入/储存工作区数据rem(a,b) a/b的余数size(A) A矩阵的大小[行数列数]ylim([0,1])help 打开帮助界面help+帮助界面中对应标题查看对应函数的使用nthroot(x,n) x的n次实数根sign(x) x大于零输出1;x等于零输出0;x小于零输出-1log10(x) lg(x)log(x) ln(x)【注:logb(a)=ln(a)/ln(b)】fix(x) 取整round(x) 对x四舍五入floor(x) 对x向负取整ceil(x) 对x向正取整factor(x) 对x因式分解gcd(a,b) 求a,b最大公约数lcm(a,b) 求a,b最小公倍数rats(x) 用分数表示xfactorial(x) x!nchoosek(n,k) 组合数n选kprimes(x) 找出小于x的素数isprime(x) x是素数,返回1sin(),cos(),tan()... 自变量为弧度asin(),acos(),atan()... 结果为弧度max(x),min(x) x适量中的最大、最小值[a,b]=max(A) A为一行时,a为最大值,b为最大值单行位置A为m行n列时,a为m行向量,对应各列最大值,b为m行向量,对应各列最大值在该列位置多个最大值时,位置默认第一个max(A,B) A、B同大,结果为A,B中对应位置最大值的汇总矩阵mean()/median()/mode() 求平均值/中位数/众数(众数选最小值)cumsum/cumprod(A) 求A的累加/累乘结果,生成与A同大小矩阵,(列运算)单矩阵运算sum/prod(A) A矩阵列求和/求积或求行向量和/积sort(A)/sort(A,'descend') 将A升序/降序排列(行向量自身升序/降序,矩阵列升序/降序)sortrows(A,n) 按第n列排列各行,n正升序,n负降序,n省略第一列升序size(x)/[a,b]=size(x) 返回[行数,列数]/给a、b赋值length(A) 矩阵A的最大长度(行数和列数的最大值)std(A) 求A的标准差(行向量自身求解,矩阵列求解)var(A) 求A的方差(行向量自身求解,矩阵列求解)rand/randn(m,n) 生成(0,1)m×n随机数矩阵/生成均值为0,标准差为1的高斯随机数矩阵(正态分布)【通过randn(m,n)*std+mean可得到均值为mean,标准差为std的正态分布随机数矩阵】A+B*i(complex(A,B)) 生成复数或复数矩阵real(A)/imag(A) 求实部/虚部isreal(A) 实数返回1coni(A) 求共轭【或用A'也可,但会发生行列互换】x为复数时abs(x)/angle(x) 求复数的模,与水平方向的夹角realmax/realmin 返回MATLAB能够使用的最大/最小浮点数intmax/intmin 返回MATLAB能够使用的最大/最小整数pi/i/j 圆周率/虚数/虚数clock 当前时间(一般使用fix(clock)增加可读性)date 返回日期,以字符串形式eps 返回MATLAB最小间隔矩阵A(n,:)/(:,m)【A(n,end)/(end,m)】A矩阵的第n行【最后一列】/第m列【最后一行】[A,B]=meshgrid(a,b),A.*B a,b为行向量,运行结果得a*b的m*n 维矩阵【meshgrid(x)等价于meshgrid(x,x)】zeros(m)/(m,n) m*m/m*n全零矩阵ones(m)/(m,n) m*m/m*n全一矩阵diag(A) 取对角元素为列向量diag(x) 若x为行向量或列向量,结果为对角阵其他元素为零diag(A,n/-n) 对角线右上/左下第n斜线上的元素fliplr(A)/flipud(A) A矩阵列/行进行对称翻转magic(m) 创建m*m维魔方矩阵作图xlabel/ylabel('') 添加x/y轴坐标title('') 添加表头grid 使图像出现网格figure(x) 创建或打开figure x窗口,之后作图均在该窗口进行hold on 保持图像窗口中之前的图像,进而在此作图不会清除之前图像(hold off取消)plot(x1,y1,x2,y2) 同时做两个图像plot(x) x为行向量,则以点数1至n为横轴,x为纵轴作图,按顺序依次连线plot(A) A为m*n矩阵,则图像为那条曲线,每条曲线横轴均为1至m,纵轴为相应列对应值plot(x,A) 以x为横轴,A的每一列为纵轴作图(x与A同维)plot(A,B) A与B需同维,对应列分别作为横轴和纵轴作图plot('标识符') 线型:-实线:点-.点画线--虚线点型:.点o圆圈xx形状+加号*星号s方形d菱形v下三角^上三角<左三角>右三角p五角星h六角星颜色:b蓝色g绿色r红色c青色m洋红色y黄色k黑色w白色【注】,多重输出可多重设定axis([a,b,c,d]) 限制图像x轴在[a,b],y轴在[c,d]legend('string1','string2',etc) 按照作图顺序添加图注text(x,y,'string') 在(x,y)处添加文本‘string’gtext('string') 添加文本‘string’,位置由鼠标点击确定【注】(适用于string形式)输入希腊字母需要'\'+希腊字母读法;^ 可出现上标,_ 可出现下标若想输出_或^,可用\+相应符号subplot(m,n,k) 将图形窗口划分成m行n列,所有的绘图操作都在一行一行数的第k个子图中进行【注】clf针对消除一个figure窗口内的内容,而plot等一系列操作针对一个子图中,且hold on/off被限于特定一个子图中,不影响其他子图polar(x,y) 绘制极图semilogx/semilogy(x,y) x轴对数,y轴线性/x轴线性,y轴对数作图loglog(x,y) 双对数坐标作图bar(x)/barh(x) x为矢量时,按x绘制垂直/水平条形图x为矩阵时,按各行分组绘制垂直/水平条形图bar3(x)/bar3h(x) 同上,绘制三维条形图pie(x)/pie3(x) 绘制(三维)饼状图。
第二讲 MATLAB 绘图
![第二讲 MATLAB 绘图](https://img.taocdn.com/s3/m/72d4bad6ad51f01dc281f1c7.png)
绘制y=1-exp(0.3*t).*cos(0.7*t)
t=6*pi*(0:100)/100; y=1-exp(-0.3*t).*cos(0.7*t); tt=t(find(abs(y-1)>0.05)); ts=max(tt); plot(t,y,'r-'); grid on; axis([0,6*pi,0.6,max(y)]); title('y=1-exp(-\alpha*t)*cos(\omega*t)'); hold on; plot(ts,0.95,'bo'); hold off; set(gca,'xtick',[2*pi,4*pi,6*pi],'ytick',[0.95,1,1.05,max(y)]); grid on;
绘制曲线
x t cos(3t ) , t 2 y t sin t
t = -pi:pi/100:pi; x = t.*cos(3*t); y = t.*sin(t).^2; plot(x,y)
2015-5-14 10
图形标识
图形标识包括:
图名(title) 坐标轴名(xlabel、ylabel) 图形文本注释(text) 图例(legend)
2015-5-14 22
双纵坐标:plotyy指令
plotyy指令调用格式:
plotyy(x1, y1, x2, y2)
x1-y1曲线y轴在左, x2-y2曲线y轴在右。
例3.7:
x = 0:0.01:20; y1 = 200*exp(-0.05*x).*sin(x); y2 = 0.8*exp(-0.5*x).*sin(10*x); plotyy(x,y1,x,y2);
Matlab绘图和坐标操作
![Matlab绘图和坐标操作](https://img.taocdn.com/s3/m/a62dee57312b3169a551a401.png)
Matlab绘图和坐标操作a=linspace(1,2,10)plot(a,'--pr','linewidth',1.5,'MarkerEdgeColor','r','MarkerFaceColor','m','MarkerSize',10)legend('a','Location','best')title('a','FontName','Times New Roman','FontWeight','Bold','FontSize',16)xlabel('T','FontName','Times New Roman','FontSize',14)ylabel('a','FontName','Times New Roman','FontSize',14,'Rotation',0)axis auto equalset(gca,'FontName','Times New Roman','FontSize',14)1.曲线线型、颜色和标记点类型plot(X1,Y1,LineSpec, …) 通过字符串LineSpec指定曲线的线型、颜色及数据点的标记类型。
线型颜色数据点标记类型标识符意义标识符意义标识符意义- 实线r 红色+ 加号-. 点划线g 绿色o 圆圈-- 虚线b 蓝色* 星号: 点线c 蓝绿色. 点m 洋红色x 交叉符号y 黄色square(或s) 方格k 黑色diamond(或d) 菱形w 白色^ 向上的三角形v 向下的三角形> 向左的三角形< 向右的三角形pentagram(或p) 五边形hexagram(或h) 六边形2.设置曲线线宽、标记点大小,标记点边框颜色和标记点填充颜色等。
用Matlab绘制中国行政区划地图
![用Matlab绘制中国行政区划地图](https://img.taocdn.com/s3/m/0cb85606876fb84ae45c3b3567ec102de2bddf8e.png)
⽤Matlab绘制中国⾏政区划地图步骤1:从⽹站下载数据⽂件。
选择 Country: China,再选择 Shapefile,会下载得到⼀个名为 “gadm36_CHN_shp.zip” 的压缩⽂件。
步骤2:解压数据⽂件。
解压得到⼀系列⽂件,其中 *.shp 是 Matlab 绘图⽤到的。
其中,gadm36_CHN_0.shp、gadm36_CHN_1.shp、gadm36_CHN_2.shp、gadm36_CHN_3.shp,分别表⽰国、省、市、县四级⾏政区划的详细经纬度界线。
步骤3:加载数据⽂件。
使⽤ shaperead 函数可以直接加载 Shapefile 数据⽂件。
ShapeFile = 'D:\data\gadm36_CHN_shp\gadm36_CHN_0.shp';MapData = shaperead(ShapeFile);MapData.GeometryMapData.BoundingBocMapData.LontMapData.GID_0_0步骤 App:台湾省地图缺失问题的解决步骤1-2加载的 <China> 地图,缺少了台湾省,并不是完整的中国!需要重新执⾏步骤1⾄步骤2,选择“Taiwan”,下载得到台湾省的省、市、县、镇四级⾏政区划地图。
⽽且,台湾省的地图级别设置不对,在步骤3合并CHN 和 TWN 的地图时,需要调整对应的级别,使它的“国”属性消失,才能正常显⽰。
这⾥给出⼀个中国的省级⾏政区划绘制的⽰例:ShapeFile = 'D:\data\gadm36_CHN_shp\gadm36_CHN_1.shp'; % CHN的省界划分ShapeFile_TWN = 'D:\data\gadm36_TWN_shp\gadm36_TWN_0.shp'; % TWN 的省界划分MapData = shaperead(ShapeFile);MapData_TWN = shaperead(ShapeFile_TWN);hold on;plot(MapData.Lon, t, '.')plot(MapData_TWN.Lon, MapData_t, '.')。
Matlab?绘制地图各种属性设置
![Matlab?绘制地图各种属性设置](https://img.taocdn.com/s3/m/d551739982d049649b6648d7c1c708a1284a0a0d.png)
Matlab 绘制地图各种属性设置matlab自带的worldmap画地图,基本代码网上一大堆。
但翻来覆去全是matlab help里面的一些基本例子。
看完了,也只是会画个很基本的草图而已。
等着真要精化地图,各种设置麻烦死了。
网上又直接百度不到。
很简单的一个例子就是去掉地图标注上那些该死的“W”、“N”,设置中国区域为地图中心等。
网上实在难找,不得已扎进matlab help文档里面仔细去找属性。
废了好大功夫,总算没白进去,收获颇丰!为此得到一个最大感悟,以后再遇到问题,直接进文档里面去寻找,了解到的东西会比百度多得多得多!算了,不废话了,直接贴一段代码作为以后绘图以及设置属性的样本。
lat=[-90 90];lon=[-180 180];worldmap(lat,lon);h1=axesm('MapProjection','eqdcylin','maplatlimit',lat,'maplo nlimit',lon,'frame','on','parallellabel','on','meridianlabel','on','fline width',1,'plabellocation',5,'mlabellocation',10);setm(h1,'fedgecolor',[.6 .6 .6], 'fontname','Times New Rom','fontsize',12);setm(h1,'grid','on');setm(h1,'LabelFormat','none');%{compass} | signed | nonesetm(h1,'PLabelMeridian','west','MLabelParallel','south');%横纵坐标轴位置setm(h1,'Origin',[0 114]);grid off;h=geoshow('landareas.shp','FaceColor', [0.8 0.8 0.8]);这段代码是用来绘制基本地图以及设置坐标标注格式,控制地图颜色、投影中心、范围等等。
matlab绘图方法讲解
![matlab绘图方法讲解](https://img.taocdn.com/s3/m/0517460dde80d4d8d15a4f52.png)
对参数方程表示的三维曲线的绘制还有一个简单 形式ezplot3, 调用格式为: ezplot3 (x,y,z,[tmin,tmax]) 功能:绘制区间 tmin tmax 范围内x = x(t), y = y(t)和z = z(t) 的三维曲线。 参数[tmin,tmax]的默认值为 0 2 。
stem:离散杆状图的绘图函数 stem (X,Y, 'filled') 功能:绘制向量X中指定的序列Y的填充的离散 杆状图。
MATLAB 绘图
23
阶梯状图
stairs:阶梯状图的绘图函数 stairs(X,Y,STYLE) 功能:绘制向量X中指定的序列Y的指定线型 的阶梯状图。
MATLAB 绘图
MATLAB 绘图
30
三维曲面图的绘制函数ezsurf的格式为: ezsurf(f,[xmin,xmax,ymin,ymax]) 功能:绘制符号表达式 f代表的x、y二元函数的在 [xmin,xmax,ymin,ymax]范围内的三维曲面。 ezsurf (x,y,z,[smin,smax,tmin,tmax]) 功能:绘制在[smin,smax,tmin,tmax]范围内x = x(s,t), y = y(s,t)和z = z(s,t)的三维曲面。
errorbar:误差条形图的绘图函数 errorbar(x,y,e,s) 功能:绘制向量y对x的误差条形图。误差条 对称地分布在yi的上方和下方,长度为ei。 errorbar(x,y,l,u,s) 功能:绘制向量y对x的误差条形图。误差条 分布在 yi 上方的长度为 ui, 下方的长度为 li 。 字符串s设置颜色和线型。
ezpolar : 在极坐标系中绘制图形 ezpolar(f) 功能:绘制极坐标曲线 rho=f(theta),缺省值 范围为 。 0 2 ezpolar(f,[a,b]) 功能:绘制极坐标曲线 rho=f(theta),范围为 [a b]。
如何在Matlab中进行二维和三维绘图
![如何在Matlab中进行二维和三维绘图](https://img.taocdn.com/s3/m/93ee365c1fd9ad51f01dc281e53a580217fc5043.png)
如何在Matlab中进行二维和三维绘图在科学研究和工程领域,数据可视化是一项十分重要的任务,而Matlab作为一种功能强大的数值计算和数据分析软件,自然也提供了丰富的绘图功能。
本文将介绍如何在Matlab中进行二维和三维绘图,并探讨一些常见的绘图技巧和应用。
一、二维绘图Matlab中的二维绘图是最常见和基础的绘图任务之一。
在绘制二维图形时,我们通常会用到plot函数。
这个函数可以接受单个向量作为输入,将这个向量的值作为y轴上的数据点,自动生成与该向量长度相同的x轴坐标。
例如,我们可以用以下代码绘制一个简单的二维折线图:```x = 0:0.1:2*pi;y = sin(x);plot(x, y);```上述代码中,x参量取从0到2π的均匀间隔的值,而y则是根据x计算得到的sin函数值。
plot函数会自动根据输入绘制折线图,并添加相应的轴标签和图例。
在实际应用中,我们经常需要绘制多条曲线在同一个坐标系中进行对比分析。
可以通过在plot函数中传入多个x和y向量实现这一功能。
例如,我们可以通过以下代码绘制一个简单的双曲线图:```x = 0:0.1:2*pi;y1 = sin(x);y2 = cos(x);plot(x, y1, x, y2);```这样,就会在同一个坐标系中同时绘制sin曲线和cos曲线。
除了折线图,Matlab还支持其他常见的二维绘图类型,如散点图、柱状图和面积图等。
这些绘图类型可以通过不同的函数实现,例如scatter、bar和area等。
这里不再一一赘述,读者可以通过Matlab的帮助文档或官方网站了解更多的用法和示例。
二、三维绘图除了二维绘图,Matlab也提供了丰富的三维绘图功能,用于可视化更为复杂的数据和模型。
在绘制三维图形时,我们通常会用到surf函数。
这个函数可以接受两个二维矩阵作为输入,将这两个矩阵的值分别作为x、y轴上的坐标,而将第三个二维矩阵的值作为z轴上的数据点。
MATLAB作图(超详细)
![MATLAB作图(超详细)](https://img.taocdn.com/s3/m/2de44af09b6648d7c1c746cd.png)
2020/5/31
数学建模
3. 对数坐标图
在很多工程问题中,通过对数据进行对数转换可以 更清晰地看出数据的某些特征,在对数坐标系中描绘数 据点的曲线,可以直接地表现对数转换.对数转换有双对 数坐标转换和单轴对数坐标转换两种.用loglog函数 可以实现双对数坐标转换,用semilogx和semilogy 函数可以实现单轴对数坐标转换. loglog(Y) 表示 x、y坐标都是对数坐标系
单击鼠标左键,则在当前图形窗口中,以鼠标点中的点为 中心的图形放大2倍;单击鼠标右键,则缩小2倍.
zoom off 关闭缩放模式
grid on
%标注格栅
MATLAB liti37
例 创建一个简单的半对数坐标图. 解 输入命令:
x=0:.1:10;
semilogy(x,10.^x)
MATLAB liti38
例 绘制y=x3的函数图、对数坐标图、半对数坐标图.
2020/5/31
MATLAB liti22 数学建模
返回
三维图形 1. 空间曲线 2. 空间曲面
semilogx(Y) 表示 x坐标轴是对数坐标系
semilogy(…) 表示y坐标轴是对数坐标系
plotyy 有两个y坐标轴,一个在左边,一个在右边
2020/5/31
数学建模
例 用方形标记创建一个简单的loglog.
解 输入命令:
x=logspace(-1,2);
loglog(x,exp(x),’-s’)
数学建模
返回
2. 定制坐标 Axis([xmin xmax ymin ymax zmin zmax])定制图形坐标
x、y、z的最大、最小值
Axis
将坐标轴返回到自动缺省值
Matlab——m_map指南(3)——实例
![Matlab——m_map指南(3)——实例](https://img.taocdn.com/s3/m/b9f4c5d25122aaea998fcc22bcd126fff7055d03.png)
Matlab——m_map指南(3)——实例m_map 实例1、clear allm_proj('ortho','lat', 48,'long',-123');%投影⽅式,范围m_coast('patch','r');%红⾊填充m_grid('linest','-','xticklabels',[],'yticklabels',[]);%标注为空patch(.55*[-1 1 1 -1],.25*[-1 -1 1 1]-.55,'w');%四个点,⽩⾊填充text(0,-.55,'M\_Map','fontsize',25,'color','b',...'vertical','middle','horizontal','center');%填充内容,属性要求,垂直⽔平居中,斜杠转义符set(gcf,'units','inches','position',[2 2 3 3]);%设置图⽚⼤⼩set(gcf,'paperposition',[3 16 6 6]);%[left bottom width height].2.clear allm_proj('lambert','long',[-160 -40],'lat',[30 80]);m_coast('patch',[1 .85 .7]);%填充海岸线m_elev('contourf',[500:500:6000]);%海深等⾼线m_grid('box','fancy','tickdir','in');colormap(flipud(copper));%翻转三原⾊的顺序排列,重新画图3、m_proj('stereographic','lat',90,'long',30,'radius',25);m_elev('contour',[-3500:1000:-500],'edgecolor','b');m_grid('xtick',12,'tickdir','out','ytick',[70 80],'linest','-');m_coast('patch',[.7 .7 .7],'edgecolor','r');4、4.1默认的加载形式clear allSlongs=[-100 0;-75 25;-5 45; 25 145;45 100;145 295;100 290];Slats= [ 8 80;-80 8; 8 80;-80 8; 8 80;-80 0; 0 80];for l=1:7,m_proj('sinusoidal','long',Slongs(l,:),'lat',Slats(l,:));%分区块的载⼊地图m_grid;m_coast;end;xlabel('Interrupted Sinusoidal Projection of World Oceans');% In order to see all the maps we must undo the axis limits set by m_grid calls:set(gca,'xlimmode','auto','ylimmode','auto');%⾃动加载所有数据4.2clear allsubplot(211);Slongs=[-100 0;-75 25;-5 45; 25 145;45 100;145 295;100 290];Slats= [ 8 80;-80 8; 8 80;-80 8; 8 80;-80 0; 0 80];for l=1:7,m_proj('sinusoidal','long',Slongs(l,:),'lat',Slats(l,:));m_grid('fontsize',6,'xticklabels',[],'xtick',[-180:30:360],...%字体尺⼨,隐藏坐标,坐标等距离排列 'ytick',[-80:20:80],'yticklabels',[],'linest','-','color',[.9 .9 .9]);%线条形式实线,颜⾊m_coast('patch','g');%填充绿⾊end;xlabel('Interrupted Sinusoidal Projection of World Oceans');% In order to see all the maps we must undo the axis limits set by m_grid calls:set(gca,'xlimmode','auto','ylimmode','auto');subplot(212);Slongs=[-100 43;-75 20; 20 145;43 100;145 295;100 295];Slats= [ 0 90;-90 0;-90 0; 0 90;-90 0; 0 90];%⽐上⾯范围重叠更多for l=1:6,m_proj('mollweide','long',Slongs(l,:),'lat',Slats(l,:));m_grid('fontsize',6,'xticklabels',[],'xtick',[-180:30:360],...'ytick',[-80:20:80],'yticklabels',[],'linest','-','color','k');m_coast('patch',[.6 .6 .6]);end;xlabel('Interrupted Mollweide Projection of World Oceans');set(gca,'xlimmode','auto','ylimmode','auto');%⾃动加载所有数据范围5、clear all% Nice looking data[lon,lat]=meshgrid([-136:2:-114],[36:2:54]);u=sin(lat/6);%?v=sin(lon/6);m_proj('oblique','lat',[56 30],'lon',[-132 -120],'aspect',.8);%注意纬度顺序,⾼纬到低纬,'aspect'长宽⽐subplot(121);m_coast('patch',[.9 .9 .9],'edgecolor','none');m_grid('tickdir','out','yaxislocation','right',...%边缘经纬线在外,纬度在右,经度在顶'xaxislocation','top','xlabeldir','end','ticklen',.05);%边缘经纬度宽度hold on;%图层合并m_quiver(lon,lat,u,v);%经度,纬度,向东,向北的速度分量,转化为⽮量箭头xlabel('Simulated surface winds');subplot(122);m_coast('patch',[.9 .9 .9],'edgecolor','none');m_grid('tickdir','in','yticklabels',[],...'xticklabels',[],'linestyle','none','ticklen',.02);%经纬线去除hold on;[cs,h]=m_contour(lon,lat,sqrt(u.*u+v.*v));%画出轮廓clabel(cs,h,'fontsize',10,'Color','red','FontWeight','bold');%标注轮廓,字体,字体⼤⼩,颜⾊xlabel('Simulated something else');6、clear all% Plot a circular orbitlon=[-180:180];lat=atan(tan(60*pi/180)*cos((lon-30)*pi/180))*180/pi;m_proj('miller','lat',80);%查询,纬度(-80 80),经度(-180 180)m_coast('color',[0 .6 0]);m_line(lon,lat,'linewi',2,'color','r');%线宽,2;颜⾊m_grid('linestyle','none','box','fancy','tickdir','in');%没有⽹格,边框相间,%m_line(lon,lat,'linewi',2,'color','r','linestyle',':');控制线条格式,点画线还是直线7、clear allm_proj('lambert','lon',[-10 20],'lat',[33 48]);%范围设置与投影有关系m_tbase('contourf');%画5-min数据库轮廓m_grid('linestyle','none','tickdir','out','linewidth',3);没有安装terrainbase,所以轮廓很简陋,这个坑⽤到的时候再填8、不同分辨率情况下画的图clear all% Example showing the default coastline and all of the different resolutions% of GSHHS coastlines as we zoom in on a section of Prince Edward Island.clfaxes('position',[0.35 0.6 .37 .37]);%[left bottom width height]m_proj('albers equal-area','lat',[40 60],'long',[-90 -50],'rect','on');%⽅形,扇形m_coast('patch',[0 1 0]);%填充m_grid('linest','none','linewidth',2,'tickdir','out','xaxisloc','top','yaxisloc','right');m_text(-69,41,'Standard coastline','color','r','fontweight','bold');%经纬度,内容,格式axes('position',[.09 .5 .37 .37]);m_proj('albers equal-area','lat',[40 54],'long',[-80 -55],'rect','on');m_gshhs_c('patch',[.2 .8 .2]);m_grid('linest','none','linewidth',2,'tickdir','out','xaxisloc','top');m_text(-80,52.5,'GSHHS\_C (crude)','color','m','fontweight','bold','fontsize',14);axes('position',[.13 .2 .37 .37]);m_proj('albers equal-area','lat',[43 48],'long',[-67 -59],'rect','on');m_gshhs_l('patch',[.4 .6 .4]);m_grid('linest','none','linewidth',2,'tickdir','out');m_text(-66.5,43.5,'GSHHS\_L (low)','color','m','fontweight','bold','fontsize',14);axes('position',[.35 .05 .37 .37]);m_proj('albers equal-area','lat',[45.8 47.2],'long',[-64.5 -62],'rect','on');m_gshhs_i('patch',[.5 .6 .5]);m_grid('linest','none','linewidth',2,'tickdir','out','yaxisloc','right');m_text(-64.4,45.9,'GSHHS\_I (intermediate)','color','m','fontweight','bold','fontsize',14); axes('position',[.55 .23 .37 .37]);m_proj('albers equal-area','lat',[46.375 46.6],'long',[-64.2 -63.7],'rect','on');m_gshhs_h('patch',[.6 .6 .6]);m_grid('linest','none','linewidth',2,'tickdir','out','xaxisloc','top','yaxisloc','right');m_text(-64.18,46.58,'GSHHS\_H (high)','color','m','fontweight','bold','fontsize',14);运⾏出现这样问题⽹站https:///mgg/shorelines/data/gshhs/oldversions/version1.10/下载下载version1.10中 gshhs_1.10.zip ⽂件,将zip⽂件解压,把gshhs_*.b ⽂件复制到 matlab\R2009\toolbox\matlab\m_map\@private ⽂件夹内。
MAP图绘制,附完整matlab代码
![MAP图绘制,附完整matlab代码](https://img.taocdn.com/s3/m/8bda9ecb2b160b4e777fcf0e.png)
MAP图绘制教程与程序代码MAP图全名是等高图图或等势云图,是在普通的二维坐标图上绘制出三维的数据云图,常用于驱动系统效率数据处理,地理位置绘制等三维数据处理(纵轴以不同颜色的云图表示)。
记得看完文章有问题的可以跟我联系。
1、软件:matlab2014b;2、系统:windows下面直接进入正题,看看matlab怎么绘制MAP图,如下以驱动电机MAP图绘制为例讲解。
一、绘图结果展示二、绘图逻辑MAP图实质上就是在二维的坐标图上,以颜色为标准投影出第三维的数据,明白这个原理就好进行下一步了。
1、绘制二维的纵横坐标数据;2、限制云图投影范围;3、在二维坐标上投影等值线。
三、代码原matlab程序代码:%%驱动系统MAP图clcspeed=xlsread(map,'sheet2','C:C');torque=xlsread(map,'sheet2','D:D');[SPEED,TORQUE]=meshgrid(0:20:3000,0:20:2000);n0=0:20:3000;TN=interp1(speed,torque,n0);p=repmat(TN,101,1);ii=find(TORQUE>p);TORQUE(ii)=NaN;SPEED(ii)=NaN;plot(n0,TN,'b--','linewidth',1.5);hold onspeed_L=xlsread(map,'sheet1','B:B');torque_L=xlsread(map,'sheet1','C:C');efficiency_L=xlsread(map,'sheet1','D:D');value_eff=[0.65:0.02:0.98];EFFICIENCY=griddata(speed_L,torque_L,efficiency_L,SPEED,TORQUE,'v4'); [C,h]=contour(SPEED,TORQUE,EFFICIENCY,value_eff);clabel(C,h,value_eff);hold onxlabel('转速/(rpm)');ylabel('转矩/Nm');title('电机map图');四、代码解释及注意事项(1)全文解释%%驱动系统MAP图clcspeed=xlsread(map,'sheet2','C2:C13');%读取命名为map的表格数据torque=xlsread(map,'sheet2','D2:D13');%读取绘制电机外特性的数据%%绘制拟合转矩曲线并限制网格范围[SPEED,TORQUE]=meshgrid(0:20:3000,0:20:2000);%绘图背景的m*n矩阵网格(按图形可自定义)n0=0:20:3000;%限定插值范围与网格一致TN=interp1(speed,torque,n0);%将speed,torque按照n0对应插值,插值方式(speed,torque,'nearest'/‘spline')p=repmat(TN,101,1); %为筛选采样点区域,将TN数据重排为m*n矩阵ii=find(TORQUE>p);%搜索采样区域外数据位置TORQUE(ii)=NaN;%将纵坐标采样区域外网格定义为空值SPEED(ii)=NaN;%将横坐标采样区域外网格定义为空值plot(n0,TN,'b--','linewidth',1.5);%拟合的转矩曲线hold on%%绘制等值图speed_L=xlsread(filename,'sheet1','B2:B132');torque_L=xlsread(filename,'sheet1','C2:C132');efficiency_L=xlsread(filename,'sheet1','D2:D132');%读取效率试验数据value_eff=[0.65:0.02:0.98];%限定效率等值曲线显示条数EFFICIENCY=griddata(speed_L,torque_L,efficiency_L,SPEED,TORQUE,'v4');%将speed_L,torque_L,efficiency_L三维数据对应二维SPEED,TORQUE插值[C,h]=contour(SPEED,TORQUE,EFFICIENCY,value_eff);%生成等值曲线图clabel(C,h,value_eff);hold on%图题和坐标设置xlabel('转速/(rpm)');ylabel('转矩/Nm');title('电机map图');(2)对应的数据格式(3)注意事项A.数据表格必须和.m文件在一个根目录里;B.注意matlab程序中的关于数据参数的更改;C.有什么问题记得跟我联系。
利用Matlab绘制地图的超详细教程
![利用Matlab绘制地图的超详细教程](https://img.taocdn.com/s3/m/32ea30c029ea81c758f5f61fb7360b4c2e3f2ad5.png)
利⽤Matlab绘制地图的超详细教程⽬录MappingToolbox⼯具箱安装局部区域陆地绘制映射贴图纹理贴图线路图绘制usamapaxesm⼀些地图绘制可⽤简易函数subplottightmap边框标签⽹格快速开关函数colormapcolorbarworldmap和usamap是axesm的⼦类,worldmap是⽤于⽣成世界地图坐标区域,usamap⽤于⽣成美国地图坐标区域,本⽂先在worldmap函数基础上讲解如何导⼊各种数据绘制各种类型图⽚,略提⼀下如何使⽤usamap,再讲解axesm的各种属性以满⾜更多元化的地图绘制需求,并在最后总结地图绘制其他可⽤函数。
Mapping Toolbox⼯具箱安装请通过如下步骤安装⼯具箱:1.点击附加功能:2.搜索Mapping Toolbox,并点击进⼊介绍界⾯:3.点安装⼀路点确定:worldmap及usamap⾸先是最简单的海岸线世界地图:1234567% 创建世界地图坐标区域worldmap('World') % 导⼊海岸线数据load coastlines% 绘制海岸线plotm(coastlat,coastlon)附带陆地区域、湖泊、河流、城市的世界地图:123456789101112131415% 创建世界地图坐标区域ax=worldmap('World');setm(ax,'Origin',[0 180 0])% 绘制陆地land=shaperead('landareas.shp','UseGeoCoords',true);geoshow(ax,land,'FaceColor',[0.5 0.7 0.5])% 绘制湖泊lakes=shaperead('worldlakes.shp','UseGeoCoords',true);geoshow(lakes,'FaceColor','blue')% 绘制河流rivers=shaperead('worldrivers.shp','UseGeoCoords',true);geoshow(rivers, 'Color', 'blue')% 绘制城市cities=shaperead('worldcities.shp','UseGeoCoords',true);geoshow(cities,'Marker','.','Color','red')可以看到绘制的主要流程就是:创建地图坐标区域(通过axesm、worldmap、usamap)导⼊数据(通过load或者shaperead)通过geoshow、plotm、scatterm绘制图像(⼤部分普通坐标区域axes中出现的函数加个m就变成了⽤于地图坐标区域的函数)worldmap创建地图坐标区域部分:⼤家肯定想知道worldmap()⾥⾯⽀持哪些参数,这个连官⽹都没有写,事实上只要⽆参数运⾏⼀下函数worldmap()就会蹦出来⼀个地区选择框,⼤家可以试⼀下啊:同时worldmap函数⽀持直接输⼊经纬度范围,例如:12latlim=[-50 50];lonlim=[160 -30];worldmap(latlim,lonlim)数据导⼊部分:其中可以通过load 导⼊的MATLAB ⾃带数据有:1. coastlines - 世界海岸线经纬度⽮量2. conus - ⽤于连接的美国(conus)、五⼤湖、州际边界的经纬度阵列3. geoid60c - 全球⼤地⽔准⾯⾼度⽹格(以⽶为单位)/度4. greatlakes - 显⽰结构阵列中的北美五⼤湖5. korea5c - 朝鲜半岛的地形和⽔深测量6. koreaEQdata - 地震位置和震级7. layermtx - ⽤于教学的地理定位地形⽹格8. mapmtx - ⽤于教学的地理定位地形⽹格9. moonalb20c - 克莱门汀全球⽉球反照率图10. moontopo60c - ⽉球的克莱门汀激光雷达地形11. oceanlo - 显⽰结构数组中的海洋遮罩多边形12. russia - ⽹格化⼟地、⽔域、边界、外部区域13. seatempm -全球多通道海⾯温度⽹格14. stars - 4500+颗恒星的天体坐标和星等15. usamtx - 美国各州的数据⽹格,每度五个单元格16. usgslulegend - USGS ⼟地利⽤类别列表其中可以通过shaperead 导⼊的MATLAB ⾃带数据有:1. landareas.shp - 全球陆地区域多边形2. tsunamis.shp - 全球1950-2006 年中到⼤型海啸的百分⽐3. usastatehi.shp - ⾼分辨率多边形美国各州形状4. usastatelo.shp - 低多边形美国各州形状5. worldcities.shp - 全球318个城市或⼈⼝稠密位置坐标6. worldlakes.shp - 世界上 37 个最⼤的多边形湖泊和内陆海域7. worldrivers.shp - 世界主要河流的线条形状8. boston_placenames.shp - 美国马萨诸塞州波⼠顿地名9. boston_roads.shp - 美国马萨诸塞州波⼠顿道路10. concord_hydro_area.shp - 美国马萨诸塞州康科德⽔域11. concord_hydro_line.shp - 美国马萨诸塞州康科德⽔路12. concord_roads.shp - 美国马萨诸塞州康科德道路这些信息来⾃:\mcr\toolbox\map\mapdata\Contents.m局部区域陆地绘制⾸先绘制个南极洲,南极洲的陆地信息可以从landareas.shp 中提取 :123456% 创建世界地图坐标区域并将区域设置为南极洲worldmap('antarctica') % 从陆地区域数据⽂件中获取南极洲⼤陆数据并绘图antarctica = shaperead('landareas.shp', 'UseGeoCoords', true,...'Selector',{@(name) strcmp(name,'Antarctica'), 'Name'});patchm(t, antarctica.Lon, [0.5 1 0.5])除此之外其他⾯积较⼤,可以通过如上⽅式获取的区域还有:‘Antarctica’‘Africa and Eurasia’‘North and South America’‘Greenland’‘Australia’‘Baffin Island’‘Ellesmere Island’‘New Guinea’‘Great Britain’‘Borneo’‘Honshu’‘Victoria Island’‘Celebes’‘New Zealand NorthIsland’‘Sumatra’‘Madagascar’‘Iceland’‘New Zealand South Island’‘Newfoundland’‘Luzon’‘DevonIsland’‘Ireland’‘Cuba’‘Java’‘Mindanao’例如我绘制中国附近的亚欧⾮⼤陆陆地:123456% 创建世界地图坐标区域并将区域设置为中国worldmap('China') % 从陆地区域数据⽂件中获取亚欧⾮⼤陆数据并绘图antarctica = shaperead('landareas.shp', 'UseGeoCoords', true,...'Selector',{@(name) strcmp(name,'Africa and Eurasia'), 'Name'});78910patchm(t, antarctica.Lon, [0.5 0.7 0.5])% 加个海岸线美化⼀下load coastlines plotm(coastlat,coastlon)映射贴图南美洲和中太平洋的⼤地⽔准⾯⾼度:要绘制⾼度映射图只需要将geoshow 的’DisplayType’属性设置为’surface’。
怎样用Matlab绘图
![怎样用Matlab绘图](https://img.taocdn.com/s3/m/924a0c110b4e767f5acfce0b.png)
help plothelp axisa1=plot();hlod ona2=plot();legend([a1 a2],'图1 名',‘图2 名')hold offx1=-pi:pi/12:pi;x2=-pi:pi/12:pi;y1=sin(x1);y2=cos(x2);plot(x1,y1,x2,y2);axis([-2*pi 2*pi -2 2]);xlabel('x');ylabel('y');title('sin(x) & cos(x)');MATLAB受到控制界广泛接受的一个重要原因是因为它提供了方便的绘图功能.这里主要介绍2 维图形对象的生成函数及图形控制函数的使用方法,还将简单地介绍一些图形的修饰与标注函数及操作和控制MATLAB 各种图形对象的方法.第一节图形窗口与坐标系一.图形窗口1.MATLAB 在图形窗口中绘制或输出图形,因此图形窗口就像一张绘图纸.2.在MATLAB 下,每一个图形窗口有唯一的一个序号h,称为该图形窗口的句柄.MATLAB 通过管理图形窗口的句柄来管理图形窗口;3.当前窗口句柄可以由MATLAB 函数gcf 获得;4. 在任何时刻, 只有唯一的一个窗口是当前的图形窗口( 活跃窗口);figure(h)----将句柄为h 的窗口设置为当前窗口;5.打开图形窗口的方法有三种:1)调用绘图函数时自动打开;2)用File---New---Figure 新建;3)figure 命令打开,close 命令关闭.在运行绘图程序前若已打开图形窗口,则绘图函数不再打开,而直接利用已打开的图形窗口;若运行程序前已存在多个图形窗口,并且没有指定哪个窗口为当前窗口时,则以最后使用过的窗口为当前窗口输出图形.6.窗口中的图形打印:用图形窗口的File 菜单中的Print 项.7.可以在图形窗口中设置图形对象的参数.具体方法是在图形窗口的Edit 菜单中选择Properties 项,打开图形对象的参数设置窗口,可以设置对象的属性.二.坐标系1.一个图形必须有其定位系统,即坐标系;2.在一个图形窗口中可以有多个坐标系,但只有一个当前的坐标系;3.每个坐标系都有唯一的标识符,即句柄值;4.当前坐标系句柄可以由MATLAB 函数gca 获得;5.使某个句柄标识的坐标系成为当前坐标系,可用如下函数:axes(h) h 为指定坐标系句柄值.6.一些有关坐标轴的函数:1)定义坐标范围:一般MATLAB 自动定义坐标范围,如用户认为设定的不合适,可用:axis([Xmin, Xmax, Ymin, Ymax])重新设定;2)坐标轴控制:MATLAB 的缺省方式是在绘图时,将所在的坐标系也画出来,为隐去坐标系,可用axis off;axis on 则显示坐标轴(缺省值).3)通常MATLAB 的坐标系是长方形,长宽比例大约是4:3,为了得到一个正方形的坐标系可用:axis square4)坐标系横纵轴的比例是自动设置的,比例可能不一样,要得到相同比例的坐标系,可用:axis equal第二节二维图形的绘制一. plot 函数plot 函数是最基本的绘图函数,其基本的调用格式为:1.plot(y)------绘制向量y 对应于其元素序数的二维曲线图,如果y 为复数向量,则绘制虚部对于实部的二维曲线图.例:绘制单矢量曲线图.y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20];plot(y)由于y 矢量有10 个元素,x 坐标自动定义为[1 2 3 4 5 6 7 8 9 10].2.plot(x,y)------绘制由x,y 所确定的曲线.1)x,y 是两组向量,且它们的长度相等,则plot(x,y)可以直观地绘出以x 为横坐标,y 为纵坐标的图形.如:画正弦曲线:t=0:0.1:2*pi;y=sin(t);plot(t,y)2)当plot(x,y)中,x 是向量,y 是矩阵时,则绘制y 矩阵中各行或列对应于向量x的曲线.如果y 阵中行的长度与x 向量的长度相同,则以y 的行数据作为一组绘图数据;如果y 阵中列的长度与x 向量的长度相同,则以y 的列数据作为一组绘图数据;如果y 阵中行,列均与x 向量的长度相同,则以y 的每列数据作为一组绘图数据.例:下面的程序可同时绘出三条曲线.MATLAB 在绘制多条曲线时,会按照一定的规律自动变化每条曲线的的颜色.x=0:pi/50:2*pi;y(1,:)=sin(x);y(2,:)=0.6*sin(x);y(2,:)=0.3*sin(x);plot(x,y)或者还可以这样用:x=0:pi/50:2*pi;y=[ sin(x); 0.6*sin(x); 0.3*sin(x)];plot(x,y)3) 如果x,y 是同样大小的矩阵,则plot(x,y)绘出y 中各列相应于x 中各列的图形.例:x(1,:)=0:pi/50:2*pi;x(2,:)=pi/4:pi/50:2*pi+pi/4;x(3,:)=pi/2:pi/50:2*pi+pi/2;y(1,:)=sin(x(1,:));y(2,:)=0.6*sin(x(2,:));y(3,:)=0.3*sin(x(3,:));plot(x,y)x=x';y=y';figureplot(x,y)在这个例子中,x------3x101,y------3x101,所以第一个plot 按列画出101 条曲线,每条3 个点;而x'------101x3,y'------101x3,所以第二个plot 按列画出3 条曲线,每条101 个点.3.多组变量绘图:plot(x1, y1, 选项1, x2, y2, 选项2, ……)上面的plot 格式中,选项是指为了区分多条画出曲线的颜色,线型及标记点而设定的曲线的属性.MATLAB 在多组变量绘图时,可将曲线以不同的颜色,不同的线型及标记点表示出来.这些选项如下表所示:各种颜色属性选项'r' 红色'm' 粉红'g' 绿色'c' 青色'b' 兰色'w' 白色'y' 黄色'k' 黑色各种线型属性选项'-' 实线'--' 虚线':' 点线'-.' 点划线各种标记点属性选项'.' 用点号绘制各数据点'^' 用上三角绘制各数据点'+' 用'+'号绘制各数据点'v' 用下三角绘制各数据点'*' 用'*'号绘制各数据点'>' 用右三角绘制各数据点' .' 用'.'号绘制各数据点'<' 用左三角绘制各数据点's'或squar 用正方形绘制各数据点'p' 用五角星绘制各数据点'd'或diamond 用菱形绘制各数据点'h' 用六角星绘制各数据点这些选项可以连在一起用,如:'-.g'表示绘制绿色的点划线,'g+'表示用绿色的'+'号绘制曲线.注意:1)表示属性的符号必须放在同一个字符串中;2)可同时指定2~3 个属性;3)与先后顺序无关;4)指定的属性中,同一种属性不能有两个以上.例:t=0:0.1:2*pi;y1=sin(t);y2=cos(t);y3=sin(t).*cos(t);plot(t,y1, '-r',t,y2, ':g',t,y3, '*b')该程序还可以按下面的方式写:t=0:0.1:2*pi;y1=sin(t);y2=cos(t);y3=sin(t).*cos(t);plot(t,y1, '-r')hold onplot(t,y2, ':g')plot(t,y3, '*b')hold off注:在MATLAB 中,如画图前已有打开的图形窗口,则再画图系统将自动擦掉坐标系中已有的图形对象,但设置了hold on 后,可以保持坐标系中已绘出的图形.还可以进一步设置包括线的宽度(LineWidth), 标记点的边缘颜色(MarkerEdgeColor),填充颜色(MarkerFaceColor)及标记点的大小(MarkerSize)等其它绘图属性.例:设置绘图线的线型,颜色,宽度,标记点的颜色及大小.t=0:pi/20:pi;y=sin(4*t).*sin(t)/2;plot(t,y,'-bs','LineWidth',2,... %设置线的宽度为2'MarkerEdgeColor','k',... %设置标记点边缘颜色为黑色'MarkerFaceColor','y',... %设置标记点填充颜色为黄色'MarkerSize',10) %设置标记点的尺寸为104.双Y 轴绘图:plotyy()函数.其调用格式为: plotyy(x1,y1,x2,y2)------绘制由x1,y1 和x2,y2 确定的两组曲线,其中x1,y1 的坐标轴在图形窗口的左侧,x2,y2 的坐标轴在图形窗口的右侧.Plotyy(x1,y1,x2,y2, 'function1','function2')------功能同上,function 是指那些绘图函数如:plot,semilogx,loglog 等.例如:在一个图形窗口中绘制双Y 轴曲线.x=0:0.3:12;y=exp(-0.3*x).*sin(x)+0.5;plotyy(x,y,x,y,'plot','stem')stem:绘制stem 形式的曲线(上端带圈的竖线).绘图结果:两条图线自动用不同的颜色区分,两个坐标的颜色与图线的颜色相对应,左边的Y 轴坐标对应的是plot 形式的曲线,右边的Y 坐标对应的是stem 形式的曲线.二.对数坐标图绘制函数:在对数坐标图的绘制中,有三种绘图函数:semilogx,semilogy 和loglog 函数.1)semilogx( )------绘制以X 轴为对数坐标轴的对数坐标图. 其调用格式为:semilogx(x,y,'属性选项')其中属性选项同plot 函数.该函数只对横坐标进行对数变换,纵坐标仍为线性坐标.2)semilogy( )------绘制以Y 轴为对数坐标轴的对数坐标图. 其调用格式为:semilogy(x,y,'属性选项')该函数只对纵坐标进行对数变换,横坐标仍为线性坐标.3)loglog( )------ 绘制X,Y 轴均为对数坐标轴的图形.其调用格式为:loglog(x,y,'属性选项')该函数分别对横,纵坐标都进行对数变换.例:x=0:0.1:6*pi;y=cos(x/3)+1/9;subplot(221), semilogx(x,y);subplot(222), semilogy(x,y);subplot(223), loglog(x,y);4)MATLAB 还提供了一个实用的函数:logspace( )函数,可按对数等间距地分布来产生一个向量,其调用格式为:x=logspace(x1,x2,n)这里,x1 表示向量的起点;x2 表示向量的终点;n 表示需要产生向量点的个数(一般可以不给出,采用默认值50).在控制系统分析中一般采用这种方法来构成频率向量w.关于它的应用后面还要讲到.三.极坐标图的绘制函数:绘极坐标图可用polar( )函数.其调用格式如下:polar(theta, rho,'属性选项')------theta:角度向量,rho:幅值向量,属性内容与plot 函数基本一致.例如:极坐标模型为:3145/)/)cos((+ =θρ, ],[πθ80∈则绘出极坐标图的程序为:theta=0:0.1:8*pi;p=cos((5*theta)/4)+1/3;polar(theta,p)四.绘制多个子图:subplot( )函数MATLAB 允许在一个图形窗口上绘制多个子图(如对于多变量系统的输出),允许将窗口分成nxm 个部分.分割图形窗口用subplot 函数来实现,其调用格式为:subplot(n,m,k)或subplot(nmk)------n,m 分别表示将窗口分割的行数和列数,k 表示要画图部分的代号,表示第几个图形,nmk 三个数可以连写,中间不用符号分开.例如:将窗口划分成2x2=4 个部分,可以这样写:subplot(2,2,1),plot(……)subplot(2,2,2),……subplot(2,2,3),……subplot(2,2,4),……注:subplot 函数没有画图功能,只是将窗口分割.第三节图形的修饰与标注MATLAB 提供了一些特殊的函数修饰画出的图形,这些函数如下: 1)坐标轴的标题:title 函数其调用格式为:title('字符串')------字符串可以写中文如:title('My own plot')2)坐标轴的说明:xlabel 和ylabel 函数格式:xlabel('字符串')ylabel('字符串')如:xlabel('This is my X axis') ylabel('My Y axis')3)图形说明文字:text 和gtext 函数A.text 函数:按指定位置在坐标系中写出说明文字.格式为:text(x1, y1, '字符串', '选项') x1,y1 为指定点的坐标;'字符串'为要标注的文字;'选项'决定x1,y1 的坐标单位,如没有选项,则x1,y1 的坐标单位和图中一致;如选项为'sc', 则x1,y1 表示规范化窗口的相对坐标,其范围为0到1.如:text(1,2, '正弦曲线')B.gtext 函数:按照鼠标点按位置写出说明文字.格式为:gtext('字符串')当调用这个函数时,在图形窗口中出现一个随鼠标移动的大十字交叉线,移动鼠标将十字线的交叉点移动到适当的位置,点击鼠标左键,gtext 参数中的字符串就标注在该位置上.4)给图形加网格:grid 函数在调用时直接写grid 即可.上面的函数的应用实例:例:在图形中加注坐标轴标识和标题及在图形中的任意位置加入文本.t=0:pi/100:2*pi;y=sin(t);plot(t,y),grid,axis([0 2*pi -1 1])xlabel('0 leq itt rm leq pi','FontSize',16)ylabel('sin(t)','FontSize',20)title('正弦函数图形','FontName','隶书' ,'FontSize',20) text(pi,sin(pi),'leftarrowsin(t)=0','FontSize',16)text(3*pi/4,sin(3*pi/4),'leftarrowsin(t)=0.707','FontSize',16)text(5*pi/4,sin(5*pi/4),' sin(t)=-0.707rightarrow',... 'FontSize',16,'HorizontalAlignment','right')5)在图形中添加图例框:legend 函数其调用格式为:A.legend('字符串1', '字符串2', ……)------以字符串1,字符串2……作为图形标注的图例.B.legend('字符串1', '字符串2', ……, pos)------pos 指定图例框显示的位置.图例框被预定了6 个显示位置:0------取最佳位置;1------右上角(缺省值);2------左上角;3------左下角;4------右下角;-1------图的右侧.例:在图形中添加图例.x=0:pi/10:2*pi;y1=sin(x);y2=0.6*sin(x);y3=0.3*sin(x);plot(x,y1,x,y2,'-o',x,y3,'-*')legend('曲线1','曲线2','曲线3')6)用鼠标点选屏幕上的点:ginput 函数格式为:[x, y, button]=ginput(n)其中:n 为所选择点的个数;x,y 均为向量,x 为所选n 个点的横坐标;y 为所选n个点的纵坐标.button 为n 维向量,是所选n 个点所对应的鼠标键的标号:1------左键;2------中键;3------右键.可用不同的鼠标键来选点,以区别所选的点.此语句可以放在绘图语句之后,它可在绘出的图形上操作,选择你所感兴趣的点,如峰值点,达到稳态值的点等,给出点的坐标,可求出系统的性能指标.第四节MATLAB 下图形对象的修改MATLAB 图形对象是指图形系统中最基本,最底层的单元,这些对象包括:屏幕(Root), 图形窗口(Figures), 坐标轴(Axes), 控件(Uicontrol), 菜单(Uimenu),线(Lines),块(Patches),面(Surface),图像(Images),文本(Text)等等.根据各对象的相互关系,可以构成如下所示的树状层次:RootFiguresAxes Uicontrol Uimenu Uicontextmenu (对象菜单)Images Line Patch Surface Text对各种图形对象进行修改和控制,要使用MATLAB 的图形对象句柄(Handle).在MATLAB 中,每个图形对象创立时,就被赋予了唯一的标识,这个标识就是该对象的句柄.句柄的值可以是一个数,也可以是一个矢量.如每个计算机的根对象只有一个,它的句柄总是0,图形窗口的句柄总是正整数,它标识了图形窗口的序号等.利用句柄可以操纵一个已经存在的图形对象的属性,特别是对指定图形对象句柄的操作不会影响同时存在的其它图形对象,这一点是非常重要的.一.对图形对象的修改可以用下面函数:1)set 函数:用于设置句柄所指的图形对象的属性.Set 函数的格式为:set(句柄, 属性名1, 属性值1, 属性名2, 属性值2, ……) 例:h=plot(x,y)set(h, 'Color', [1,0,0])------将句柄所指曲线的颜色设为红色.2)get 函数:获取指定句柄的图形对象指定属性的当前值.格式为:get(句柄, '属性名')如: get(gca, 'Xcolor')------获得X 轴的当前颜色属性值. 执行后可返回X 轴的当前颜色属性值[0,0,0](黑色).3)如果没有设置句柄,则可以使用下列函数获得:gcf:获得当前图形窗口的句柄;gca:获得当前坐标轴对象的句柄;gco:获得当前对象的句柄.如:A.要对图形窗口的底色进行修改,可用:set(gcf, 'Color', [1,1,1])------将图形窗口底色设为白色B.要把当前X 轴的颜色改为绿色,可用:set(gca, 'Xcolor', [0,1,0])C.还可对坐标轴的显示刻度进行定义:t=-pi:pi/20:pi;y=sin(t);plot(t,y)set(gca,'xtick',[-pi:pi/2:pi],'xticklabel',['-pi','-pi/ 2','0','pi/2','pi'])本例中用'xtick'属性设置x 轴刻度的位置(从-pi~pi,间隔pi/2,共设置5 个点),用'xticklabel'来指定刻度的值,由于通常习惯于用角度度量三角函数,因此重新设置['-pi','-pi/2','0','pi/2','pi']5 个刻度值.二.一些常用的属性如下:1)Box 属性:决定图形坐标轴是否为方框形式,选项为'on'(有方框), 'off'(无方框);2)'ColorOrder'属性:设置多条曲线的颜色顺序,默认值为:[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]黄色粉色天蓝红色绿色兰色颜色向量还有:[1 1 1]------白色;[0 0 0]------黑色.3)坐标轴方向属性:'Xdir','Ydir','Zdir',其选项为:'normal'------正常'reverse'------反向4)坐标轴颜色和线型属性:'Xcolor','Ycolor','Zcolor'------ 轴颜色, 值为颜色向量如何在画好曲线后再在图上标刻度就是想在一些特定的点边上标上一串30.60.90~7200递增的数据,共有96个点要标!!im = imread(url);imshow(im)然后输入:text(100,100,'\o ','Color','red');matlab,用imread 读入一个图片,我想在图上的一些坐标点上做标记。
MATLAB绘制地图
![MATLAB绘制地图](https://img.taocdn.com/s3/m/e165b4445022aaea988f0f68.png)
所有栅格数据必须有一个参考向量或者参考矩阵,即使它们覆盖了整个地球。
二、下面的图使用参考向量(Reference vector).
对于参考向量,其实就是三个值,第一个值表示每个经纬度有多少个单元(cell),第2和第3个值表示数据中第一个点的经纬度坐标,一般是地图右上角的经纬度坐标:
在以下的叙述中,我们规定,矩阵的每一行对应相同的纬度,每一列对应着相同的经度。
如何根据矩阵中某个元素的行数和列数来计算其对应的经度呢?很自然地,用下面的方法来计算:
long = long11+(col-1)dlong = coldlong+long11-dlong⋅⋅
类似地,用下式根据某个元素的行数和列数来计算其对应的纬度:
在MAT文件中,这个变量通常被称作refvec或者maplegend。第一个元素cells-per-degree,描述了每一个栅格元素的角范围(假如每一个栅格元素覆盖5个经纬度,cells-per-degree就是0.2)。注意假如一个栅格元素的经度范围和纬度范围不一致,就不能用参考向量,而必须定义参考矩阵。
-78.4608 -157.3327
-78.4406 -157.0008
-78.4200 -156.6700
-78.5000 -154.5000
-78.1700 -154.5000
-78.1700 -154.5000
-78.0800 -156.6700
-77.8300 -158.0000
-77.5000 -158.3300
在这里,我们首先统一符号:
long
MATLAB中绘图命令介绍
![MATLAB中绘图命令介绍](https://img.taocdn.com/s3/m/378b0def112de2bd960590c69ec3d5bbfd0ada90.png)
MATLAB中绘图命令介绍本节将介绍MATLAB基本xy平面及xyz空间的各项绘图命令,包含一维曲线及二维曲面的绘制。
plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x 及y座标。
下例可画出一条正弦曲线:close all;x=linspace(0, 2*pi, 100); % 100个点的x坐标y=sin(x); % 对应的y坐标plot(x,y);小整理:MATLAB基本绘图函数plot: x轴与y轴均为线性刻度(Linear scale)loglog: x轴与y轴均为对数刻度(Logarithmic scale)semilogx: x轴为对数刻度,y轴为线性刻度semilogy: x轴为线性刻度,y轴为对数刻度若要画出多条曲线,只需将座标对依次放入plot函数即可:hold on 保持当前图形,以便继续画图到当前坐标窗口hold off 释放当前图形窗口title(’图形名称’)(都放在单引号内)xlabel(’x轴说明’)ylabel(’y轴说明’)text(x,y,’图形说明’)legend(’图例1’,’图例2’,…)plot(x, sin(x), x, cos(x));若要改变颜色,在座标对後面加上相关字串即可:plot(x, sin(x), 'c', x, cos(x), 'g');若要同时改变颜色及图线型态,也是在座标对後面加上相关字串即可:plot(x, sin(x), 'co', x, cos(x), 'g*');小整理:plot绘图函数的叁数字元、颜色元、图线型态,y 黄色 .点k 黑色o 圆w 白色x xb 蓝色++g 绿色* *r 红色- 实线c 亮青色: 点线m锰紫色-. 点虚线-- 虚线plot3 三维曲线作图图形完成后,我们可用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围: axis([0, 6, -1.2, 1.2]);axis函数的功能丰富,其常用的用法有:axis equal :纵横坐标轴采用等长刻度axis square:产生正方形坐标系(默认为矩形)axis auto:使用默认设置axis off:取消坐标轴axis on :显示坐标轴此外,MATLAB也可对图形加上各种注解与处理:xlabel('Input Value'); % x轴注解ylabel('Function Value'); % y轴注解title('Two Trigonometric Functions'); % 图形标题legend('y = sin(x)','y = cos(x)'); % 图形注解grid on; % 显示格线我们可用subplot来同时画出数个小图形於同一个视窗之中:subplot(2,2,1); plot(x, sin(x));subplot(2,2,2); plot(x, cos(x));subplot(2,2,3); plot(x, sinh(x));subplot(2,2,4); plot(x, cosh(x));MATLAB还有其他各种二维绘图函数,以适合不同的应用,详见下表。
教你如何用matlab绘图(全面)
![教你如何用matlab绘图(全面)](https://img.taocdn.com/s3/m/655933000740be1e650e9a5f.png)
强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。
此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。
这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。
本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。
一.二维绘图二维图形是将平面坐标上的数据点连接起来的平面图形。
可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。
二维图形的绘制是其他绘图操作的基础。
一.绘制二维曲线的基本函数在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。
1.plot函数的基本用法plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。
plot函数的应用格式plot(x,y) 其中x,y为长度相同的向量,存储x坐标和y坐标。
例51 在[0 , 2pi]区间,绘制曲线程序如下:在命令窗口中输入以下命令>> x=0:pi/100:2*pi;>> y=2*exp(-0.5*x).*sin(2*pi*x);>> plot(x,y)程序执行后,打开一个图形窗口,在其中绘制出如下曲线注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。
例52 绘制曲线这是以参数形式给出的曲线方程,只要给定参数向量,再分别求出x,y向量即可输出曲线:>> t=-pi:pi/100:pi;>> x=t.*cos(3*t);>> y=t.*sin(t).*sin(t);>> plot(x,y)程序执行后,打开一个图形窗口,在其中绘制出如下曲线以上提到plot函数的自变量x,y为长度相同的向量,这是最常见、最基本的用法。
用matlab绘制中国地图
![用matlab绘制中国地图](https://img.taocdn.com/s3/m/1bae231302d8ce2f0066f5335a8102d276a26169.png)
⽤matlab绘制中国地图MATLAB是著名的科学软件,具有绘图、编程、仿真等强⼤的功能。
现在介绍MATLAB绘制中国地图的三种⽅式,分别是(1)使⽤m_map ⼯具箱命令绘制中国地图;(2)使⽤mapshow和geoshow命令直接绘制中国地图;(3)使⽤worldmap+geoshow命令绘制中国地图。
由于没有找到合适的shp数据包,P/L⽤同⼀个shp;⽼旧的shp中缺少南海部分;%E:\wml\matlab_workspace\map\chain_sharp.shpclose all, clear all, clc, dbstop if errorinfoL=shapeinfo('E:\matlab_workspace\map\chain_sharp.shp')infoP=shapeinfo('E:\matlab_workspace\map\chain_sharp.shp')ChinaL=shaperead('E:\matlab_workspace\map\chain_sharp.shp');ChinaP=shaperead('E:\matlab_workspace\map\chain_sharp.shp');bou2_4lx=[ChinaL(:).X];bou2_4ly=[ChinaL(:).Y];bou2_4px=[ChinaP(:).X];bou2_4py=[ChinaP(:).Y];figure(1)subplot(1,2,1);m_proj('lambert','lon',[70,140],'lat',[0,60]);m_plot(bou2_4lx,bou2_4ly,'k');m_grid;subplot(1,2,2);m_proj('robinson','lon',[70,140],'lat',[0,60]);m_plot(bou2_4px,bou2_4py,'k');m_grid;m_coast('color','r','linewidth',1);左图使⽤的兰伯特(lambert)投影,右图使⽤的罗宾逊(robinson)投影和增加了海岸线(coast)。
MATLAB画中国地图
![MATLAB画中国地图](https://img.taocdn.com/s3/m/f59fb5dca58da0116c1749b3.png)
MATLAB画中国地图转载自fengyq转载于2009年08月01日 20:27 阅读(27) 评论(3) 分类:松彥齋举报Matlab是我们常用的一个画图和计算、仿真工具,在我们海洋科研中,经常在画图时需要加上底图(譬如海岸线,国界、省界线等等)。
常用的一个工具包是M_map。
但这里我要讲的是利用matlab自带的一个画图工具包话底图,这个工具包就是worldmap.worldmap的一般用法约为:>> figure; worldmap('china'); polcmap;或者>> figure; worldmap china; polcmap;如果要加入颜色的画,一般可以这样:>> figureworldmap('china','patch')scaleruler这时候问题就出来了。
因为鬼子偷偷的讲台湾和大陆用两种颜色表示;甚至,如果你放大图片的画,会发现钓鱼岛也是不同颜色。
这个是我们不能忍受的!!!!!于是我就费了一点时间,琢磨这个画图,然后修改。
下面是这个脚本程序,在matlab中执行就可,这时候台湾和钓鱼岛和大陆就是一个颜色了^_^。
用兴趣的朋友可以把这个用法举一反三((ZHOU Feng)zhoufeng@。
matlab版本是6.5)。
不过老实说,我不太用matlab自带的这个画图包,用M_map比较多一点。
试验一下,感觉还可以用用。
画上述图的代码如下:% 把台湾和大陆合成一个文件保存起来,这样画图用patch就是一种颜色(Zhou Feng, 2008-06-30, SOED, Hangzhou)。
%% by ZHOU Feng% zhoufeng@% SOED, 2nd Institute of Oceanography% 2008-06-30s1 = worldhi('china');s2 = worldhi('taiwan');disp(s1);% add Taiwan together (ZHOU Feng)zhoufeng@s = s1;t = [t;NaN; t];s.long= [s1.long; NaN;s2.long];% add the Diaoyu Island (钓鱼岛)% 钓鱼岛群岛由钓鱼岛、黄尾岛、赤尾岛、南小岛、北小岛、大南小岛、大北小岛和飞濑岛等岛屿组成,总面积约7平方公里。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
>>bou1_4ly= [a(:).Y];%提取纬度信息
>>m_proj('Lambert Conformal Conic','lon',[70,140],'lat',[0,60])%选择投影方式
>>m_plot(bou1_4lx,bou1_4ly)%绘图
地绘制自己的数据。有兴趣的读者可以参阅它的使用说明。就在上述的网址上就有。但是m_是按照国家单个给出的,如果想画出世界各国的边界,就需要把每个国家的数据都下载下来,很麻烦。
网上有如何利用m_map来绘制行政边界的说明,例如下面的这个地址的作者就提供了一个具体的操作方法:将下载的.shp文
geoshow(h,land,'FaceColor',[0.5 0.7 0.5])
lakes=shaperead('worldlakes','UseGeoCoords',true);
geoshow(lakes,'FaceColor','blue')
rivers=shaperead('worldrivers','UseGeoCoords',true);
geoshow(rivers,'Color','blue')
cities=shaperead('worldcities','UseGeoCoords',true);
geoshow(cities,'Marker','.','Color','red')
第二种方法是利用MATLAB自带的map工具箱。直接在命令窗口输入
>>m_grid%添加坐标绘制的结果如下,与上图类似,也画出了一级河流,区别是使用的Lambert投影。
画世界地图的程序:
h=worldmap('World');
setm(h,'Origin',[0 180 0])
land=shaperead('landareas','UseGeoCoords',true);
件通过mapinfo转换成.dxf文件,利用已编译好的fortran程序,读取经纬度信息,输出.dat文件。导入 matlab空间
(/blucas/blog/item/2f34c1fd48417087b901a014.html)。
如何通过mapinfo软件来转化.shp文件我没有尝试过,因为还要学习mapinfo的使用,对多数人来说,这也是很不方便的。其实
利用matlab画中国地图的几种方法
1、下载 arc_map.zip, 内有/shape_files/china.shp 文件,地址如下:
http://venus.unive.it/matdid.php?utente=smagrini&base=ec++urbana+e+regionale+-+aa+2008-
用这种方法绘制的地图如下图。在绘制中我添加了一级河流的数据。还可以添加省界,地区界等数据。这些数据均可以从国家
基础地理信息系统的网站上下载到。
2009%2Fprimo+modulo%2Flaboratorio+matlab&cmd=dir
2、
代码:
figure;
info = shapeinfo('china.shp')
S = shaperead('china.shp');
mapshow(S);
文件中可能还有更多地理,统计信息。 只是地图政治不正确,没有宝岛。南沙在。
如何在MATLAB中绘制中国地图了呢?下面介绍两种方法。
第一种方法是利用m_map工具箱。该工具箱需要自己下载安装,下载的地址是http://www.eos.ubc.ca/~rich/map.html。
m_map是一个功能很强大的工具箱,它提供多种投影方式,而且用法也很简单,容易上手,更重要的是,利用它可以很方便
我们可以利用功能强大的MATLAB来直接读取.shp文件的内容,命令就是shaperead。只要我们下载到了数据,就可以直接利
用MATLAB来画图了。下面给出提取边界信息的简单程序。程序的后面三段即为m_map工具箱的命令。
>>a=shaperead('bou1_4l.shp');%读取shp文件的内容
>>geoshow('***.shp')
就可以显示出中国地图了。***.shp是地图数据文件。geoshow命令的用法可以在 MATLAB的帮助菜单里搜索到,因为我
对map工具箱的用法还不是很了解,也就不多讲了。大家可以在网上搜索下相关的用法。我国的地图数据可以从国家基础地理
信息系统的网站上下载,网址是/。