精华内容
下载资源
问答
  • matlab作图
    2022-08-05 11:24:58
    % matlab
    xlabel('x轴');
    ylabel('y轴');
    title('标题');
    lengend('x','y','z')
    
    # python
    import matplotlib.pyplot as plt
    plt.rcParams["font.sans-serif"]=["Microsoft YaHei"] #设置字体,防止中文和负号乱码
    
    plt.xlabel('x轴') # 设置x轴
    plt.ylabel('y轴') # 设置y轴
    plt.title('标题')
    
    更多相关内容
  • matlab里关于作图的一些函数和命令,便于编程时查阅
  • matlab绘图代码大全,绘图函数代码资料集合
  • 1、找点:x=0, pi/6, pi/3, pi/2, 2*pi/3, 5*pi/6, … 2、计算函数值:y=sin(0), sin(pi/6), sin(pi/3), … 3、描点:在坐标系中画出这 些离散点 4、用直线或曲线连接这些点, 得到函数的大致图形 Matlab 作图的基本...
  • MATLAB作图

    2021-01-07 01:15:25
    MATLAB作图是通过描点、连线来实现的。在画之前,必须先取得图形上一系列的点的坐标(横坐标和纵坐标),然后传给函数作图。 plot(X,Y) plot(X,Y,S) plot(X,Y1,S1,X,Y2,S2,···,X,Yn,Sn) %多条线画在一起 颜色...
  • Matlab绘图

    千次阅读 2021-04-18 09:33:24
    plot(x, y), axis([0 10 -1 1]) 执行上面示例代码,MATLAB生成以下图表 - 生成子图 当在同一个图中创建一个绘图数组时,这些图中的每一个图称为子图。 subplot命令用于创建子图。 该命令的语法是 - subplot(m, n, p...

    要使用plot函数来绘制图形,需要执行以下步骤:

    通过指定要绘制函数的变量x的值的范围来定义x。

    定义函数,y = f(x)

    调用plot命令,如下:plot(x,y)

    以下示例将演示该概念。下面绘制x的值范围是从0到100,使用简单函数y = x,增量值为5。

    创建脚本文件并键入以下代码 -

    x = [0:5:100];

    y = x;

    plot(x, y)

    执行上面示例代码,得到以下结果 -

    257748740c41ade5811838bf975417d7.png

    下面再来一个例子来绘制函数y = x^2。 在这个例子中,将绘制两个具有相同函数的图,但是在第二次,将减小增量的值。请注意,当减少增量时,图形变得更平滑。

    创建脚本文件并键入以下代码 -

    x = [1 2 3 4 5 6 7 8 9 10];

    x = [-100:10:100];

    y = x.^2;

    plot(x, y)

    执行上面示例代码,得到以下结果 -

    9849ce4e5fdadc215574e1610cb2b4f6.png

    更改代码,减少增量为2 -

    a50be5c1f2bf4d6461e1abb4fadba6a9.png

    在图上添加标题,标签,网格线和缩放

    MATLAB允许沿x轴和y轴,网格线添加标题,标签,并且还可以调整轴来绘制图形。

    xlabel和ylabel命令沿x轴和y轴生成标签。

    title命令用于在图表上设置标题。

    grid on命令用于将网格线放在图形上。

    axis equal命令允许生成具有相同比例因子的绘图和两个轴上的空格。

    axis square命令生成一个方形图。

    示例

    创建脚本文件并键入以下代码 -

    x = [0:0.01:10];

    y = sin(x);

    plot(x, y), xlabel('x'), ylabel('Sin(x)'), title('Sin(x) Graph'),

    grid on, axis equal

    MATLAB生成以下图表 -

    4775f4051f7b28a128209000cfe553ef.png

    在同一个图上绘制多个函数

    可以在同一个图上绘制多个图形。以下示例演示了这一概念 -

    示例

    创建脚本文件并键入以下代码 -

    x = [0 : 0.01: 10];

    y = sin(x);

    g = cos(x);

    plot(x, y, x, g, '.-'), legend('Sin(x)', 'Cos(x)')

    MATLAB生成以下图表 -

    5a5d8e867285849d9c9b3930ee7313ea.png

    在图上设置颜色

    MATLAB提供了八个基本的颜色选项来绘制图形。 下表显示了颜色及其代码 -

    代码

    颜色

    w

    White

    k

    Black

    b

    Blue

    r

    Red

    c

    Cyan

    g

    Green

    m

    Magenta

    y

    Yellow

    示例

    下面我们来绘制两个多项式的图形 -

    c1d7364ed3c58f3d73fcffbc2983b5aa.png

    创建脚本文件并键入以下代码 -

    x = [-10 : 0.01: 10];

    y = 3*x.^4 + 2 * x.^3 + 7 * x.^2 + 2 * x + 9;

    g = 5 * x.^3 + 9 * x + 2;

    plot(x, y, 'r', x, g, 'g')

    执行上面示例代码,MATLAB生成以下图表 -

    42aca6355b00b593c25d239063a440a5.png

    设置轴刻度

    axis命令用来设置轴刻度。可以通过以下方式使用axis命令为x和y轴提供最小和最大值:

    axis ( [xmin xmax ymin ymax] )

    示例

    创建脚本文件并键入以下代码 -

    x = [0 : 0.01: 10];

    y = exp(-x).* sin(2*x + 3);

    plot(x, y), axis([0 10 -1 1])

    执行上面示例代码,MATLAB生成以下图表 -

    00c53a01b890f2facfbc637f8c3524a3.png

    生成子图

    当在同一个图中创建一个绘图数组时,这些图中的每一个图称为子图。 subplot命令用于创建子图。

    该命令的语法是 -

    subplot(m, n, p)

    其中,m和n是绘图数组的行数和列数,p表示放置指定图形的位置。

    使用subplot命令创建的每个曲线都可以有自己的特点。 以下示例演示了这一概念 -

    示例

    下面示例将生成两个区域块 -

    941ced77256059cf4df52068d235e3eb.png

    创建脚本文件并键入以下代码 -

    x = [0:0.01:5];

    y = exp(-1.5*x).*sin(10*x);

    subplot(1,2,1)

    plot(x,y), xlabel('x'),ylabel('exp(–1.5x)*sin(10x)'),axis([0 5 -1 1])

    y = exp(-2*x).*sin(10*x);

    subplot(1,2,2)

    plot(x,y),xlabel('x'),ylabel('exp(–2x)*sin(10x)'),axis([0 5 -1 1])

    执行上面示例代码,得到以下结果 -

    31d26f88649e28b05d8601507e0383ac.png

    ¥ 我要打赏

    纠错/补充

    收藏

    加QQ群啦,易百教程官方技术学习群

    注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

    展开全文
  • MATLAB作图教程全-MATLAB作图教程全.ppt 介绍matlab 画图很好的资料
  • Matlab绘图标注.docx

    2019-07-04 10:27:24
    绘图标注。收集了多个资源包,汇总成为一个Word文档,以便使用
  • 400多套matlab绘图配色方案-othercolor配色工具包
  • MATLAB 绘图

    万次阅读 2020-08-20 20:39:24
    MATLAB中绘制图形,通常采用以下7个步骤 1.准备数据 准备好绘图需要的横坐标变量和纵坐标变量数据。 2.设置当前绘图区 在指定的位置创建新的绘图窗口,并自动以此窗口的绘图为当前绘图区。 3.绘制图形 创建坐标轴...

    一、绘图的基本步骤

    在MATLAB中绘制图形,通常采用以下7个步骤
    1.准备数据
    准备好绘图需要的横坐标变量和纵坐标变量数据。
    2.设置当前绘图区
    在指定的位置创建新的绘图窗口,并自动以此窗口的绘图为当前绘图区。
    3.绘制图形
    创建坐标轴,指定叠加绘图模式,绘制函数曲线。
    4.设置图形中曲线和标记点格式
    设置图形中的线宽、线型、颜色和标记点的形状、大小、颜色等。
    5.设置坐标轴和网格线属性
    将坐标轴的范围设置在指定横线,并设置网格线的属性,如网格线的类型(实线、虚线)等
    6.标注图形
    对图形进行标注,包括在图形中添加标题、坐标轴标注、文字标注等、
    7.保存和导出图形
    按指定文件格式、属性保存或导出图形,以备后续使用。

    二、在工作区直接绘图

    使用工作空间直接绘图

    三、利用函数绘图

    MATLAB提供了丰富的绘图功能,在命令行窗口中输入help graph2d可得到所有绘制二维图形的命令,输入help graph3d可得到所有绘制三维图形的命令。

    1.基本二维图形

    plot(X1,Y1,LineSpec,‘PropertyName’,PropertyValue):对所有用plot函数创建的图形进行属性值设置。
    常用的绘图选项:

    选项含义选项含义
    -实线.用点号标出数据点
    虚线用圆圈标出数据点
    点线×用叉号标出数据点
    -.点划线+用加号标出数据点
    r红色s用小正方形标出数据点
    g绿色D用菱形标出数据点
    b蓝色V用下三角标出数据点
    y黄色^用上三角标出数据点
    m品红<用左三角标出数据点
    c青色>用右三角标出数据点
    w白色H用六角形标出数据点
    k黑色P用五角形标出数据点
    *用星号标出数据点--

    常用属性:

    属性名含义属性名含义
    LineWidth设置线的宽度MarkerEdgeColor设置标记点的边缘颜色
    MarkerSize设置标记点的大小MarkerFaceColor设置标记点的填充颜色

    h = plot(X1,Y1,LineSpec,‘PropertyName’,PropertyValue):返回绘制函数的句柄值h。
    loglog函数、semilogx函数与semilogy函数的用法与plot函数的用法类似。
    【例1】在同一坐标下绘制多条曲线

    >> clear all;
    t = 0: pi/50: 4*pi;
    y0 = exp(-t/3);
    y = exp(-t/3).*sin(3*t);
    plot(t,y,t,y0,t,-y0);
    grid on
    

    在这里插入图片描述

    【例2】加载MATLAB自带的噪声信号进行图形绘图

    >> clear all;
    >> load noisdopp;
    >> plot(noisdopp)
    

    在这里插入图片描述

    2.双y轴绘图

    在MATLAB中,提供了plotyy函数用于绘制双y轴图形绘制。在实际中,如果两组数据的数据范围相差较大,而又希望放在同一图形中比较分析,则可以绘制双y轴图形。
    plotyy(x1,y1,x2,y2):在一个图形窗口同时绘制两条曲线(x1,y1)和(x2,y2),曲线(x1,y1)用左侧的y轴,曲线(x2,y2)用右侧的y轴。
    plotyy(x1,y1,x2,y2,fun):fun是字符串格式,用于指定绘图的函数名,如plot、semilogx等。例如,命令plotyy(x1,y1,x2,y2,‘semilogx’)就是用函数semilogx来绘制曲线(x1,y1)和(x2,y2)。
    plotyy(x1,y1,x2,y2,fun1,fun2):和第二种形式类似,只是用fun1和fun2可以指定不同的绘图函数分别绘制这两种曲线。
    【例3】利用plotyy绘制双y轴图形。

    >> clear all;
    >> x = 0: 0.01: 20;
    >> y1 = 200 * exp(-0.05 * x).*sin(x);
    >> y2 = 0.8 * exp(-0.5 * x).*sin(10 * x);
    >> figure
    >> plotyy(x,y1,x,y2)
    

    在这里插入图片描述

    3.三维图形
    1)三维曲线

    在MATLAB中,提供了plot3函数用于绘制三维曲线,其函数的用法与二维曲线绘制函数plot类似。plot3函数的调用格式如下。
    plot3(X1,Y1,Z1,…):以默认线型属性绘制三维点集(Xi,Yi,Zi)确定的曲线。Xi、Yi、Zi为相同大小的向量或矩阵。
    plot3(X1,Y1,Z1,LineSpec…):以参数LineSpec确定的线型属性绘制三维点集(Xi,Yi,Zi)确定的曲线,Xi、Yi、Zi为相同大小的向量或矩阵。
    plot3(…,‘PropertyName’,PropertyValue,…):绘制三维曲线,根据指定的属性值设定曲线的属性。
    h = plot3(…):返回绘制曲线图的句柄值向量h。
    【例4】利用plot绘制三维曲线图。

    clear all
    t = 0: pi/50: 10 * pi
    st = sin(t)
    ct = cos(t)
    figure
    plot3(st,ct,t)
    

    在这里插入图片描述
    MATLAB中,除了可以绘制三维线性图形外,还可以绘制三维曲面。常见的绘制三维曲面的MATLAB函数有mesh和surf。

    2)三维网格图的绘制

    在三维网格图绘制时经常需要用到meshgid,用于生成网格数据。
    meshgrid的用法简介
    [X,Y] = meshgid(x,y):输入向量x为xy平面上矩阵定义域的矩形分割线在x轴的值,输入向量y为xy平面上矩形定义域的矩形分割线在y轴的值。输出向量X为xy平面上矩形定义域的矩形分割点的横坐标值矩阵,输出向量Y为xy平面上矩形定义域的矩形分割点的纵坐标值矩阵。
    [X,Y] = meshgrid(x):等价于[X,Y] = meshgrid(x,x)
    [X,Y,Z] = meshgrid(x,y,z)

    3)三维网格曲面

    mesh(X,Y,Z)

    4)三维阴影曲面

    surf(X,Y,Z)
    Matlab用surf函数画三维曲面
    Matlab绘制三维曲线(plot3)和三维图形(mesh & surf)
    Matlab中mesh和surf的区别
    meshgrid,contour,surf,mesh的总结

    4.图形的修饰
    1)选择图形窗口的函数

    1.打开不同图形窗口的函数
    figure(1);figure(2);…;figure(n):用来打开不同的图形窗口,以便绘制不同的图形。
    2.图形窗口分拆函数subplot
    subplot(m,n,p):分割图形显示窗口,m表示上下分割个数,n表示左右分割个数,p表示子图编号。
    【例5】图形窗口的创建与分割

    clear all
    b = 2 * pi
    x = linspace(0,b,50)                       %分割点
    for k = 1:9
        y = sin(k * x).*cos(.52 * x)
        subplot(3,3,k)
        plot(x,y,'linewidth',2)
        axis([0,2*pi,-1,1])
    end
    
    

    在这里插入图片描述

    2)坐标轴相关函数

    在默认情况下,MATLAB自动选择图形的横、纵坐标的比例,当然也可以用axis函数控制,常用的函数格式如下:
    axis([xmin xmax ymin ymax]):[xmin xmax ymin ymax]中分别给出x轴和y轴的最大值、最小值。
    axis equal:x轴和y轴的单位长度相同。
    axis square:图框呈正方形。
    axis off:清除坐标刻度。
    semilogx:绘制以x轴为对数坐标(以10为底)、y轴为线性坐标的半对数坐标图形。
    semilogy:绘制以y轴为对数坐标(以10为底)、x轴为线性坐标的半对数坐标图形。
    loglog:绘制全对数坐标图形,即x、y轴均为对数坐标(以10为底)。

    3)文字标识函数

    text(x,y,‘字符串’):在图形的指定坐标位置(x,y)处标示单引号括起来的字符串。
    gtext(‘说明文字’):利用鼠标在图形的某一位置标示说明文字。执行完绘图命令后再执行gtext(‘说明文字’)命令,就可在屏幕上得到一个光标,然后用鼠标选择说明文字的位置。
    title(‘字符串’):在所绘制图形的最上端显示说明该图形标题的字符串。
    xlanbel(‘字符串’)、ylanbel(‘字符串’)、zlanbel(‘字符串’):设置x、y、z坐标轴的名称。输入特殊的文字需要用反斜杠()开头。
    legend(‘字符串1’、‘字符串2’,…,‘字符串n’):在屏幕上开启一个视窗,然后依据绘图函数的先后次序,用对应的字符串区分图形上的线。

    4)添加或删除栅格

    grid:给图形加上栅格线。
    grid on :给当前坐标系加上栅格线。
    grid off:从当前坐标系中删去栅格线。
    grid:交替转换命令,即执行一次,转变一个状态(相当于grid on、grid off)。

    5)图形保持或覆盖

    hold on:把当前图形保持在屏幕不变,同时允许在这个坐标内绘制另外一个图形。
    hold off:使新图覆盖旧图。
    hold函数是一个交替转换函数,即执行一次,转变一个状态(相当于hold on、hold off)。
    【例6】绘制对数坐标及半对数坐标图

    clear all
    x1 = logspace(-1,2)
    subplot(131)
    loglog(x1,exp(x1),'-s')
    title('loglog函数绘图')
    grid on
    x2 = 0: 0.1 :10
    subplot(132)
    semilogx(10.^x2,x2,'r-.*')
    title('semilogx函数绘图')
    subplot(133)
    semilogx(10.^x2,x2,'rd')
    title('semilogy函数绘图')
    

    在这里插入图片描述

    展开全文
  • matlab绘图教程-matlab绘图.rar matlab绘图.rar matlab绘图教程
  • Matlab绘图方法整理(超完整版)

    万次阅读 多人点赞 2020-02-22 10:48:32
    超详细版Matlab绘图方法整理,1万字文章让你流畅掌握Matlab作图方法,保证你能完全掌握常用作图手段,谁又不想做一幅详细、美丽的图呢?

    使用Matlab绘图

    • 图像是结果的一种可视化表现,它能直观的体现你的结果,并且能体现你获得结果的准确性,在当前的大数据时代,在做数据分析的时候,将其可视化可以直观多维的展示数据,可以让人们更好的发现并且记住数据的特征,因此很多时候掌握一些绘图方法是非常重要的,而使用MATLAB可以非常简单的进行绘图(当然还有很多其它工具可供使用),下文是我所了解的一些基本绘图方法的整理,其中很多很多内容非常基础,希望对你能有些帮助。

    二维作图

    二维图像是我们在学习过程中经常会接触到的图像,比如在做数学题目时随手画出的一个正弦曲线,这个图像往往是我们根据它的函数做出来的,事实确是这样,在我们学习过程中画出来的每一个图像几乎都是函数,反过来说,每一个函数都对应着它自己的图像,我们能画出来的二维图像往往是一个一元函数即二元方程,在Matlab中做二维图像也是这样,我们根据一个函数来画出它的图像,不过要注意的一点是,在Matlab画图的过程中,它并不认识你给出的那个函数,它要做的仅仅是把你给出的函数上的点连成线而已。

    • plot和fplot

    在Matlab里面做二维图像最基础也是最常用的两个函数:plot()fplot()函数,其中,plot的经常使用的方法有下面三种:

    one plot(x)
    two plot(x,y,参数)
    three plot(x1,y1,x2,y2,...,xn,yn)

    首先,第一种方法里面若x为一维数组,则作出的图像是以其数组长度为横坐标,间隔为1,以数组中的具体值为纵坐标的。而其也可以为复数变量,如下:

    	y = [5,10,15,20]
    	z = [100,200,300,400]
    	x =y+z*i
    	//这里的x经过此定义将会被认为是一个复数变量
    	//图像将会以实部即y为横坐标,虚部即z为纵坐标作图
    

    对于第二种形式就更好理解了,往往其中的x、y都为一维数组,其实y也就是x对应的函数值,后边的参数用于指定曲线的线形、颜色和数据点标记,如下:

    	x = [0:0.01:10]
    	y = sin(x)
    	plot(x,y,'-r*')
    

    可以看到,x是一个长度为1001的一维数组,y是和x等长的在sin(x)上的一维数组,后边的-r*分别为曲线线性、颜色、数据点标记,其中参数的一些具体属性如下表所示:

    线形颜色数据点标记
    '-' : 实线'k' : 黑色* : 星号
    ':' : 虚线b : 蓝色o : 圆圈
    '-.' : 点划线c : 蓝绿色s : 方块
    '--' : 双划线g : 绿色p : 五角星
    m : 洋红色^ : 朝上三角符号
    r : 红色X : 叉
    w : 白色+ : +
    y : 黄色d : 菱形
    v : 朝下三角符号
    < : 朝左三角符号
    > : 朝右三角符号
    H : 六角形
    这些就是基本的绘图参数指令,搭配使用效果更佳。关于参数的使用是在每种方法中都可以添加,三种常用示例只是简单示例。关于第三种使用方法,意思是把n个图像做出在一个窗口中,同时也少敲了几个plot,当然,如果你想把代码分开写也可以,只需要加上hold on命令就行了,关于它后文会有介绍。
    而关于fplot,其基本使用方法如下:

    one fplot(f,lims,参数)
    two fplot(funx,funy,tlims,参数)

    在第一种方法中,f代表一个函数,通常采用函数句柄的形式。lims为x轴的取值范围,用二元向量[xmin,xmax]描述,默认值为[-5,5]。参数定义与plot函数相同。例如使用fplot函数绘制sin(x)图像如下:

    	fplot(@(x)sin(x),[0,10],'-r')
    

    在第二种方法中,funx、funy代表函数,通常采用函数句柄的形式。tlims为参数函数funx和funy的自变量的取值范围,用二元向量[tmin,tmax]描述。如绘制参数方程(x=tsint,y=tcost)曲线如下:

    	fplot(@(t)t.*sin(t),@(t)t.*cos(t),[0,10*pi],'-r')
    

    其它形式下的二维曲线图

    上文举例说明了最基础最常用的两个做二维曲线的函数,实际上,二维图形的种类还有很多,不光只有一根线构成的曲线图,还有各种统计图、坐标图等等,相应的在Matlab中也有画它们图形的方法,下面是其它几种图形作图方法(非全部):

    • 对数坐标图

    semilogx(x1,y1,'参数',x2,y2,'参数'...)
    semilogy(x1,y1,'参数,x2,y2','参数'...)
    loglog(x1,y1,'参数',x2,y2,'参数'...)

    其中,semilogx函数x轴为常用对数刻度,y轴为线性刻度;semilogy函数x轴为线性刻度,y轴为常用对数刻度;loglog函数x轴和y轴均采用常用对数刻度。

    • 极坐标图

    polar(theta,rho,'参数')

    其中,theta为极角,rho为极径,参数内容与plot相同。

    • 条形图

    bar(y,style)
    bar(x,y,style)

    	x = [2018,2019,2020]
    	y = [10,20,30,40,50;
    		 10,20,30,40,50;
    		 10,20,30,40,50];
    	bar(x,y)
    

    第一个,参数y是数据,选项style用于指定分组排列模式,模式有两种供选择,分别为:'grouped':簇状分组,'stacked':堆积分组。
    第二个,x存储横坐标,y存储数据,y的行数必须与向量x的长度相同。选项style用于指定分组排列模式。
    具体效果请自行练习查看。

    • 直方图

    hist(y)
    hist(y,x)

    其中,y是要统计的数据,x用于指定区间的划分方式。若x是标量,则统计区间均分成x个小区间;若x是向量,则向量x中的每一个数指定分组中心值,元素的个数为数据分组数。x缺省时,默认按10个等分区间进行统计。

    rose(theta[],x)

    其中,参数theta用于确定每一区间与原点的角度,选项x用于指定区间的划分方式。

    • 面积类图形

    pie(x,explode)

    其中,参数x存储待统计数据,选项explode控制图块的显示模式。使用如下,可以试着改下参数或者help一下看看。

    	score = [10,25,3,18,41]
    	ex = [0,0,0,0,1]
    	pie(score,ex)
    
    • 散点类图形

    scatter(x,y,选项,'filled')

    其中,x、y用于定位数据点,选项用于指定线型、颜色、数据点标记。如果数据点标记是封闭图形,可以用选项’filled’指定填充数据点标记。该选项省略时,数据点是空心的。
    一颗心:

    	t = 0:pi/50:2*pi
    	x = 16*sin(t).^3
    	y = 13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t)
    	scatter(x,y,'rd','filled')
    
    • 矢量类图形

    quiver(x,y,u,v)

    其中,(x,y)指定矢量起点,(u,v)指定矢量终点。x、y、u、v是同样大小的向量或同型矩阵,若省略x、y,则在x-y平面上均匀取若干个作为起点。

    	已知向量AB,求A+B,并用矢量图表示。
    	A = [4,5]; B = [-10,0]; C = A+B;
    	hold on 
    	quiver(0,0,A(1),A(2));
    	quiver(0,0,B(1),B(2));
    	quiver(0,0,C(1),C(2));
    	text(A(1),A(2),'A');text(B(1),B(2),'B');
    	text(C(1),C(2),'C')
    	axis([-12,6,-1,6])
    	grid on
    
    • 进阶:双Y轴绘图

    plotyy()

    示例代码:

    	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,y2)
    

    三维作图

    在上文的二维作图示例中我们可以知道二维作图的基本方法,而有时候二维的图形满足不了我们的需要,这个时候就需要做一些三维图像了,而三维图像里边除了包含曲线作图之外还包含曲面作图。

    三维曲线

    在二维曲线作图里边我们主要使用的函数是plotfplot函数,而在三维曲线作图里面我们使用的是plot3fplot3函数,其不但长得像,功能也是差不多的,只不过是做了扩展而已。

    • plot3和fplot3

    关于plot3函数,其基本用法如下:

    one plot3(x,y,z,参数)
    two plot(x1,y1,z1,x2,y2,z2,...,xn,yn,zn)

    是不是似曾相识,没错,它和plot功能确实非常像,只是多了一维数据而已。如要画出sin(x)的三维图,只需这样就好:

    	x = [0:0.01:10]
    	y = x
    	z = sin(x)
    	plot3(x,y,z,'-r')
    

    怎么样,是不是非常简单,假如要绘制个空间的螺旋线,其参数方程为:x=sint+tcost,y=cost-tsint,z=t,只需这样就好:

    	t = [0:0.1:10*pi]
    	x = sin(t)+t.*cos(t)
    	y = cos(t)-t.*sin(t)
    	z = t
    	plot3(x,y,z)
    

    对于plot3函数来讲,它的参数x,y,z不止可以是一维数组,实际上:

    • 参数x、y、z是同型矩阵时,以x、y、z对应列元素绘制曲线,曲线条数等于矩阵列数。
    • 参数x、y、z中有向量,也有矩阵时,向量的长度与矩阵相符。

    对于其不止一组数据的方法2,其作用与plot类似,每一组x、y、z向量构成一组数据点的坐标,绘制一条曲线。
    而plot3函数的后面线型、颜色和数据点标记的参数则与plot完全一致。
    对于fplot3函数,其基本引用方法如下:

    fplot3(funx,funy,funz,tlims)

    其中,funx、funy、funz代表定义曲线x、y、z坐标的函数,通常采用函数句柄的形式。tlims为参数函数自变量的取值范围,用二元向量[tmin,tmax]描述,默认为[-5,5],与fplot是几乎完全一致的,不再举例。

    三维曲面

    在做三维曲面图的时候,第一步往往是生成一个平面网格,这个平面网格是什么东西呢,其实就是用矩阵X、Y分别存储每一个小矩形顶点的x坐标与y坐标,矩阵X、Y就是该矩形区域的xy平面网格坐标矩阵:
    在这里插入图片描述
    说的简单些,就是给我们要用的空间坐标系做个底面出来,本来x、y都是一维向量,它们也就是只能当两根轴,这个时候用新的两个X、Y矩阵来把空间坐标系的二维地面给表示出来,这样的话每一个[X,Y]就都能对应一个Z了,就是这个意思。在MATLAB中,产生平面区域内网格坐标矩阵有两种方法:

    • 1.利用矩阵运算生成:
    	X = ones(size(y))*x
    	Y = y*ones(size(x))
    
    • 2.利用meshgrid函数生成:
    	[X,Y] = meshgrid(x,y)
    
    • 绘制三维曲面的函数

    mesh(x,y,z,c)
    surf(x,y,z,c)
    mesh(z,c)
    surf(z,c)

    其中,x、y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的曲面颜色。c省略时,颜色的设定正比于图形的高度。
    当x、y省略时,z矩阵的第2维下标当作x轴坐标,z矩阵的第一维下标当作y轴坐标。
    另外还有一些其它的绘制三维曲面的函数:

    带等高线的三维网格曲面函数meshc
    带底座的三维网格曲面函数meshz
    具有等高线的曲面函数surfc
    具有光照效果的曲面函数surfl

    这些函数使用都和mesh还有surf大致相同,可自行练习了解。

    	//用4种方式绘制函数z=(x-1)^2+(y-2)^2-1的曲面图
    	//其中,x=[0,2],y=[1,3]
    
    	[x,y]=meshgrid(0:0.1:2,1:0.1:3)
    	z=(x-1).^2+(y-2).^2-1
    	subplot(2,2,1);meshc(x,y,z)
    	subplot(2,2,2);meshz(x,y,z)
    	subplot(2,2,3);surfc(x,y,z)
    	subplot(2,2,4);surfl(x,y,z)
    
    • 标准三维曲面

    [x,y,z]=sphere(n)

    产生3个(n+1)阶的方阵,采用这3个矩阵可以绘制出圆心位于原点、半径为1的单位球体。

    [x,y,z]=cylinder(R,n)

    其中,参数R是一个向量,存放柱面各个等间隔高度上的半径,n表示在圆柱圆周上有n个间隔点,默认有20个间隔点。
    peaks函数
    调用格式:

    	peaks(n)	>>	p1=peaks(10)
    	peaks		>>	p2=peaks
    	peaks(V)	>>	p3=peaks(-3:0.2:3)
    	peaks(x,y)	>>	[x,y]=meshgrid(-2:0.1:2,0:0.1:5)
    					p4=peaks(x,y)
    
    • fmesh函数和fsurf函数
      用于绘制参数方程定义的曲面

    fsurf(funx,funy,funz,uvlims)
    fmesh(funx,funy,funz,uvlims)

    其中,funx、funy、funz代表定义曲面x、y、z坐标的函数,通常采用函数句柄的形式。uvlims为funx、funy和funz的自变量的取值范围,用4元向量[umin,umax,vmin,vmax]描述,默认为[-5,5,-5,5]。

    图形修饰辅助操作

    到这里,不管是二维曲线三维曲线还是曲面,大家掌握的方法都差不多了,图大概率是能被我们做出来了哈哈哈,不过能把图做出来固然重要,可更重要的是还能做出美图来,这就离不开我们的图形修饰了,比如给做好的图形加个标题加个注释什么的,我们要做出来图,还要做出来细图,更要做出来美图,接下来文章将列举我们经常使用的并且很有用的图形修饰辅助操作。

    基础绘图指令

    除去上文所述plot等绘图函数命令之外,还有有一些其它修饰图形的常用命令。

    指令作用
    figure(num)新打开一个图形窗口,num为窗口序号
    hold on从指令开始,将后续所有图形绘制在一个figure窗口中
    hold off和hold on搭配使用,此指令开始,后续图形不再与之前图形绘制在一个窗口中
    axis on显示坐标轴
    axis off不显示坐标轴
    axis square使坐标轴区域为正方形
    axis normal自动调整轴的长宽比和数据单元的相对比例
    axis equal设置纵横比,使数据单元为各方面都一样
    axis equal tight将轴限制设置为数据的范围
    axis ij把坐标系统的原点放在左上角
    axis xy把原点放在左下角

    这些呢是一些常用的辅助绘图指令,没有参数,直接在脚本输入就行,功能已经列在表中非常明确,大家可以自行练习查看实用效果。
    接下来是一些带参数的绘图指令,它们可以帮你进行图形标注、坐标控制等等一系列功能,非常实用,记得好好学习。

    图形标注函数

    title(图形标题)
    xlabel(x轴说明)
    ylabel(y轴说明)
    text(x,y,文本说明)
    legend(图1,图2,...,参数...)

    值得一提的是,上面这些函数的使用方法远不及示例这么简单,它们都有非常多的参数可供选择使用,示例只是列出最简单、最常用的方法,下面是两段代码:

    	//没有图形标注
    	x	=	0:0.5:4*pi
    	y1	=	sin(x)
    	y2	=	cos(x)
    	y3	=	1./(1+exp(-x))
    	y4	=	(1/(2*pi)^0.5).*exp(((-1).*(x-2*pi).^2)./(2*2^2))
    	plot(x,y1,x,y2,x,y3,x,y4)
    	//加上简单图形标注
    	title('四条函数图像')
    	xlabel('横坐标')
    	ylabel('纵坐标')
    	text(0,0,'猜猜我在哪')
    	legend('y1','y2','y3','y4','Location','southwest')
    
    • 图形窗口分割函数subplot

    subplot(m,n,p)

    其中,m和n指定将窗口分成mXn个绘图区,p指定的是当前图像所在区域,如m=2,n=3,则一个figure窗口被分成2行三列供6个绘图区,可以容纳6个图形。若p=3,说明当前图像要被画进第三个窗口,也就是第二行第一列的窗口内。p小于等于mXn,如:

    	x	=	[0:0.1:10]
    	y1	=	sin(x)
    	y2	=	cos(x)
    	subplot(1,2,1)
    	plot(x,y1)
    	subplot(1,2,2)
    	plot(x,y2)
    

    图形修饰处理

    前面写了一些基本绘图指令,可以对我们的图形进行简单的修整,让其变得更完备更好看,接下来是一些对图形修饰的方法。

    视点处理
    • 方位角:视点与原点连线在xy平面上的投影与y轴负方向形成的角度,正值表示逆时针,负值表示顺时针。
    • 仰角:视点与原点连线与xy平面的夹角,正值表示视点在xy平面上方,负值表示视点在xy平面下方。

    在这里插入图片描述

    • view函数

    view(az,el)

    其中az为方位角,el为仰角。系统默认的视点定义为方位角-37.5°,仰角30°。

    	//绘制函数z=(x-1)^2+(y-2)^2-1的曲面图,并从不同视点展示曲面
    	[x,y]	=	meshgrid(0:0.1:2,1:0.1:3)
    	z	=(x-1).^2+(y-2).^2-1
    	subplot(2,2,1);	mesh(x,y,z)
    	subplot(2,2,2);	mesh(x,y,z);view(0,90)
    	subplot(2,2,3);	mesh(x,y,z);view(90,0)
    	subplot(2,2,4);	mesh(x,y,z);view(-45,-60)
    
    色彩处理

    默认的,向量元素在[0,1]范围内取值,3个元素一次表示红、绿、蓝三种颜色的相对亮度,称为RGB三元组即[R G B],如[0 0 1]是蓝色,[1 0 0]是红色,[1 1 1]是白色,[0 0 0]是黑色。(当然,也有在[0,255]内取值的,不再介绍)

    • 色图(Colormap)
      首先,创建一个色图矩阵方法如下:
    	cmap	=	colormap(parula(5))
    

    其中,parula是内建色图中包含的一个种类,其中参数5可以是任何一个数值,它关系着色图矩阵的范围,一般来说使用的时候省略就好。内建色图如下:
    在这里插入图片描述

    • 指定当前图形使用的色图
    	//以peaks为例,先渲染图形,后紧跟色图种类即可
    	surf(peaks)
    	colormap hot
    

    我们也可以不使用系统的色图矩阵,可以自定义任何色图矩阵。如创建一个灰色系列的色图矩阵:

    	c	=	[0,0.2,0.4,0.6,0.8,1.0]'
    	cmap	=	[c,c,c]		//这样创建的矩阵和	cmap=gray(6)是一样的
    	surf(peaks)
    	colormap(cmap)
    
    • 用shading函数来改变着色方式
      参数如下:
    名称作用
    shading faceted每个网格片用其高度对应的颜色进行着色,默认网格线是黑色
    shading flat每个网格片用同一个颜色进行着色,网格线也用此颜色
    shading interp网格片内采用颜色插值处理

    示例:使用同一色图,以不同着色方式绘制圆锥体

    	[x,y,z]	=cylinder(pi:-pi/5:0,10)
    	colormap(lines)
    	subplot(1,3,1)
    	surf(x,y,z);
    	shading flat
    	subplot(1,3,2)
    	surf(x,y,z);
    	shading interp
    	subplot(1,3,3)
    	surf(x,y,z)
    
    图形的裁剪处理

    将图形中需要裁剪部分对应的函数值设置成NaN,这样在绘制图形时,函数值为NaN的部分将不显示出来,从而达到对图形进行裁剪的目的。
    示例如下:

    	//绘制3/4圆
    	t	=	linspace(0,2*pi,100)
    	x	=	sin(t)
    	y	=	cos(t)
    	p	=	y>0.5
    	y(p)	=	NaN
    	plot(x,y)
    	axis([-1.1,1.1,-1.1,1.1])
    	axis square
    	grid on
    

    其它

    • 其实在Matlab中还有两个非常重要的函数:
    • setget,它们两个能非常方便的创建、修改图形的各种属性,如改变坐标轴范围、设置字体和刻度点、设定线条风格等等,不过它们涉及到的使用更深入,在这里不再展开叙述,而事实上,对于我们非常熟知的figure,它也能加上参数来对窗格进行设置,这都是我们经常使用的,但也是经常忽略它们其它功能的函数,如果有兴趣,你可以继续的深入探索下去,更深入的学习能更方便的为我们所用。

    总结

    好了,感谢你能看到这里,对于这篇文章,它可能的侧重点不是完全教会我们怎么作图,而更多的也可能是提醒我们在Matlab里面可以进行如此操作,对于新手而言,很多没有系统的学习过Matlab的使用,可能里面的很多东西不是我们不会用,而是根本不知道,所以这篇文章大致列出来了很多非常常用的函数方法等,其中的示例仅仅是个示例,它们的用法还有很多,希望大家能够进行再次开拓,深入的了解每个方法的使用。最后,如果你觉得本篇文章对你有用,请点个赞,谢谢!

    展开全文
  • Matlab 作图 与动画 ( 绘图 ) 31.0 概述 1.主要内容 1.1 运用 Matlab 进行作图/数据可视化/动画 1.2 通过编程实例体会运用 Matlab 进行作图的思路 课程目录 31.1 plot基本用法 31.2 线型、标记和颜色 31.3 标题、...
  • MATLAB绘图博客版.pptx

    2020-09-07 21:35:12
    整理资料无意中翻到自己以前上课的时候做的关于MATLAB基础绘图的课堂汇报PPT,当时是先看了台湾大学郭彦甫老师的课程之后的做的课堂汇报。是很久以前的事情了,把PPT贴出来供自己以后需要的时候查阅或者有需要的人...
  • 简单动画Matlab绘图时实现坐标轴水平移动显示-animationprog.m 想必大家都知道windows资源管理器里面的CPU及内存的使用记录的图形,在matlab里面如何实现呢?方法很简单,动态修改x坐标轴的范围即可。下面是一个...
  • 数学实验报告 实验名称 第二堂课 MATLAB绘图练习 学 院 东凌经济管理学院 专业班级 管信 112 姓名 杨忠璟 学 号 2013年5 月 一 实验目的 掌握 MATLAB 二维曲线绘图 掌握 MATLAB 二维特殊图形的绘制 掌握 MATLAB 三维...
  • 利用MATLAB绘制美观、简介的论文图像,事半功倍
  • 使用matlab进行绘图,各种绘图程序的集合,可以使用。
  • 变换您的MATLAB绘图以适合黑暗模式主题背景! 该功能测试哪些图形颜色不适合在深色背景上使用(通过颜色对比),并使用去饱和度和亮度方法相应地调整颜色。 此外,它还转换了相关的 Matlab 图形属性,例如轴和文本...
  • 入门级matlab作图程序,函数图像,各类统计图象(折线图、柱状图等)
  • matlab绘图去白边

    2022-05-08 11:27:11
    matlab绘图时,缩小图片后会出现白边,通过下面命令可以去除白边 导出文件Cervical_DVH_Area.eps,保存在工作目录 print -depsc2 -painters Cervical_DVH_Area.eps
  • matlab的通用作图程序,可以运行使用,供刚学习matlab人员使用
  • matlab绘图代码

    2016-01-14 22:50:36
    包含matlab绘图常用的代码,具有非常大的参考价值,供matlab的学习者参考!
  • 文档详细整理了MATLAB作图以及常用的作图函数的使用方法等
  • MATLAB绘图.ppt

    2019-05-17 16:28:32
    MATLAB绘图.matlab语言丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现了可视化,这是其它语言所不能比拟的。
  • 数学建模与数学实验中关于matlab如何作图的ppt,很全,曲线图,对数图等等都讲了
  • Matlab绘图?学会一招就够了 代码如下: clc; clear all; close all; %% 生成图窗 clc; % 清楚command窗口的文字 fig = figure(); get(fig) % 获取figure的相关属性 % 需要重点关注的属性 % Position,Units属性 ...
  • matlab绘图程序,非常好用的绘图模板
  • matlab绘图命令

    2018-09-08 14:42:05
    数学建模中plot函数的一些实用技巧,有兴趣的同学可以参考一下,是网上一位写的很好的作者总结的,侵权删
  • matlab绘图2012.ppt

    2021-09-21 20:33:48
    matlab绘图2012.ppt

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,915
精华内容 17,566
关键字:

matlab作图

友情链接: Entelqlgent__menu.rar