Matlab绘制图形知识点总结(一)

本文介绍了Matlab中用于二维图像绘制的核心函数plot的使用,包括单个和多个函数同时绘图,以及线型、颜色和标记类型的自定义。此外,还详细讲解了坐标轴的设置,如axis、xlim/ylim、legend和text等函数的运用,帮助用户更好地控制和注释图形。

        在实际的操作中,我们能够通过代码设计轻松命令Matlab绘制图形,下面是为总结Matlab最常用的几种绘图函数(包括二维与三维制图)。

一、二维图像绘制函数plot()

        1.plot(X,Y);       

        当且仅当X,Y均为实数向量且维数相同(相同长度的行向量或者相同长度长度的列向量)时有效,Matlab将会按照其顺序一一对应其横坐标及纵坐标即  [X(i),Y(i)]。若X或者Y均为复数变量,则会忽略虚数部分。

X=[1 2 3 4 5 6 7 8];    %均为行向量或者均为列向量
Y=[8 7 6 5 4 3 2 1];
plot(X,Y);
X=[1 2 3 4 5 6 7 8+6i];    %Matlab画图时提示警告自动忽略虚数部分
Y=[8 7 6 5 4 3 2 1+6i];
plot(X,Y);

(上述两者画出来的图形一致)

        若X、Y一个为向量,一个为矩阵,且向量长度等于矩阵的行数或者列数,函数会按行或者列将矩阵分解为多个向量分别与X\Y一一对应,在图像中分别画出其对应图线。

X=[1 2 3 4 5 6 7 8];    %X为向量
Y=[8 7 6 5 4 3 2 1;7 6 5 4 3 2 1 0; 6 5 4 3 2 1 0 -1];   %Y为三行八列的矩阵
plot(X,Y);

 (画出来的效果如上)

       

         2.plot(X1,Y1, X2,Y2, .....,Xn,Yn)

        Matlab支持多函数同时画图,且在同一画布上展现,效果不多赘述。

        

        3.plot(X,Y,S)

在Matlab中可以自定义其图像样式,根据自己的风格或者论文的要求可以切换多种线与坐标的样式。下面概括出一些常用的定义符。(注意黑色的简写不是b而是k)

        (1)线形、颜色定义符

线形及颜色符号表

定义符----.
线形实线(Matlab默认)划线点线点划线
定义符rgbc
颜色红色(red)绿色(green)蓝色(blue)青色(cyan)
定义符mykw
颜色品红(magenta)黄色(yellow)黑色(black)白色(white)

        (2)标记类型定义符

标记类型定义符表

定义符+o*.x
标记类型加号小圆圈星号实点交叉号
定义符d^v><
标记类型菱形(diamond)向上三角形向下三角形向右三角形向左三角形
定义符shp
标记类型正方形(square)正六角星(hexagon)正五角星(pentagon)

        (3)指定标记大小及颜色

MarkerSize标记大小,指定为正值
MarkerEdgeColor标记轮廓颜色,指定为颜色名称或 RGB 三元组
MarkerFaceColor标记内部颜色,指定为颜色名称或 RGB 三元组

例如像下列例子:

X=-pi:pi/10:pi;
Y= sin(X);
plot(X,Y,'--mv','MarkerSize',10,'MarkerEdgeColor','k','MarkerFaceColor',[0.4 0.6 0.7])
%'--mv'表示图像用划线表示,品红色,所在具体值用向下三角形表示
%后面的MarkerSize、MarkerEdgeColor、MarkerFaceColor分别表示标记符的大小、边框颜色、内容颜色

效果如下:(注意MarkerFaceColor若用RGB三元组表示的话各元素需要用空格隔开且可不用‘’(引号)包裹,但是若用颜色名称表示的话则需要‘’包裹,如‘g’)

        该部分需要读者多去实践观察其现象,可以对着上面的图标试一下具体效果。

二、坐标轴设置函数

        Matlab中的绘图常常与坐标轴有关,下列概括的是常用的坐标轴函数。

坐标轴设置函数

函数功能
axis设置横纵坐标轴的区间
xlable/ylable添加横纵坐标轴的标注
legend给坐标轴中的图形添加图例
text在坐标轴中添加字符串
grid添加网格
box添加边框
xlim/ylim设置横纵坐标区间
        1.axis可以用来设置横纵坐标轴的区间,添加不同的代码可以实现多种要求。(该行可不加‘;’)

           (1)       axis([xmin,xmax,ymin,ymax])

        控制在画布中的x/y轴的区间,在上知识点的代码基础上加上此行代码,其效果为:

(无论其要求的区间是否有值,画布都会画出)

axis([-5,10,-2,2])

         (2)      axis equal

        控制画布的呈现出来的图像横坐标与纵坐标的刻度值相等。

 (横纵坐标的刻度值皆为1)

         (3)      axis square

        控制画布的呈现出来的图像横纵坐标长度相等。(此时画布形状为正方形)

         (4)       axis auto

        系统默认样式(默认值),将画布就可能填满。

        2.xlim/ylim函数,可设置或者返回区间函数

         (1)      xlim  (ylim)

        返回横坐标区间,返回的是一个二维行向量  [min  max]

 

纵坐标方向也是如此方法。

         (2) xlim([xmin,xmax])   (ylim同理)

        用于设置横纵坐标的画布展示区间,与上述的axis([-5,10,-2,2])的方法类似,也不多赘述了

  
      3.legend函数

        在画布中的图形添加图示文字。

        (1)legend('str1第一个字符串',‘str2第二个字符串’,'str3第三个字符串'......)

        它会按照代码之前的画图顺序给每一个图像附近标上每一个字符串,因此顺序很重要。在这里补充一个知识点:当需要在一个画布中画出两条或以上曲线时,在每一次作图时需要在后面加上“hold on;”以让下一次画图仍保持在该画布上。

X=-pi:pi/10:pi;
Y1= sin(X);
Y2= cos(X);
plot(X,Y1,'--mv','MarkerSize',10,'MarkerEdgeColor','k','MarkerFaceColor',[0.4 0.6 0.7])
hold on;
plot(X,Y2,'--m^','MarkerSize',10,'MarkerEdgeColor','k','MarkerFaceColor',[0.4 0.6 0.7])
hold on;
legend('sinx','cosx')

        例如上述代码,legend内部的第一个字符串会去匹配第一条曲线即X-Y1,后面类似。运行的结果如下:

(图示若没有修改其位置则默认在右上角)

         (2)根据曲线图像需要修改图示位置时

        legend('str1第一个字符串',‘str2第二个字符串’,'str3第三个字符串'...,‘Location’,'direction')

        有时候由于图示在默认位置处遮挡住图像需要修改位置时,可以在后面加上location属性。

        其方向有

northwestnorthnortheast
westeast
southwestsouthsoutheast

        上述例子将legend函数改为“legend('sinx','cosx','Location','northwest')”,可以让函数分布更加规整好看。

        

         4.text函数        text(x,y,'string')

        text函数可以在坐标轴的制指定位置添加字符串,用以更直接对图像的解释。其坐标位置(x,y)与横纵坐标分布有关。

        以上述图像为例,若想在坐标轴(-3,0.3)处加上字符串“y=sinx”用以对图线的解释,则可以在原有代码上加上text函数,即

X=-pi:pi/10:pi;
Y1= sin(X);
Y2= cos(X);
plot(X,Y1,'--mv','MarkerSize',10,'MarkerEdgeColor','k','MarkerFaceColor',[0.4 0.6 0.7])
hold on;
plot(X,Y2,'--m^','MarkerSize',10,'MarkerEdgeColor','k','MarkerFaceColor',[0.4 0.6 0.7])
hold on;
legend('sinx','cosx','Location','northwest')
text(-3,0.3,'y=sinx')

效果如下:

 5.label函数        xlabel/ylabel

        label函数用于给横纵坐标添加标注,调用形式为xlabel('str1')或者ylabel('str2'),实现比较简单不过多叙述了。

三、分贴小结

        由于知识点过多一个帖子分享篇幅较大,因此打算多写一个帖子分享后面关于画图的知识点,若有需要继续学习的可以找后面的帖子研究一下。若有什么问题可以在评论区留言,或者私聊我,我会力所能及的帮助一同学习的人。大家一同进步吧!

<think>嗯,用户想在Matlab里隐藏绘图中的点。首先,我需要回忆Matlab绘图的基本知识。通常绘图的时候,比如用plot函数,默认会显示线条和点标记。如果用户想隐藏点,可能是指只显示线条而不显示数据点的标记,或者完全隐藏某些数据点。 首先,检查plot函数的参数。plot的第三个参数可以指定线型和标记样式。比如,'b-'是蓝色实线,不带标记;而'bo-'是蓝色实线带圆圈标记。所以如果用户现在有标记,可能是因为在plot的参数中指定了标记符号,比如'o'、'*'等。这时候,只要去掉标记符号,只保留线型,就可以不显示点。 比如,原来的代码可能是plot(x, y, 'ro-'),这样会显示红色实线带圆圈标记。改成plot(x, y, 'r-'),就只显示红色实线,不显示点。这是比较直接的方法。 另外,如果用户已经生成了图形,想后期修改,可以通过图形句柄来设置。比如,用h = plot(x, y);然后设置h.Marker = 'none'; 这样也可以隐藏标记。这种方法对于已经存在的图形对象有效。 还有种情况,用户可能想隐藏某些特定的点,而不是全部。这时候可能需要通过索引来设置不同的属性,或者将数据分成两部分,部分显示线条,另部分不显示。但这种情况可能比较复杂,需要更具体的操作。 另外,用户可能混淆了数据点和线条的显示。有时候,如果线条太密集,看起来像有很多点,但实际上可能只是线条的连接。这时候调整线宽或者线条样式可能会有帮助,但主要还是看是否设置了标记。 还要考虑不同的绘图函数。比如scatter函数是专门绘制散点图的,如果不想要点,可能需要改用plot函数或者设置scatter的属性,比如设置Marker为'none',但scatter默认可能没有线连接,所以需要具体情况具体分析。 总结下来,最常用的方法是在plot函数中不指定标记符号,或者将现有的标记符号设置为'none'。这应该可以解决用户的问题。同时,可能需要提醒用户检查是否误用了其他绘图函数,或者是否有其他图形属性覆盖了设置。</think>在MATLAB中隐藏绘图中的点可通过以下方法实现: ### 方法:调整绘图参数 在`plot`函数中通过线型参数控制标记显示: ```matlab x = 1:10; y = rand(1,10); plot(x, y, '-') % 仅显示连线不显示点 % 或 plot(x, y, 'LineStyle','-', 'Marker','none') ``` ### 方法二:修改现有图形属性 通过图形句柄关闭标记显示: ```matlab h = plot(x, y, 'o-'); % 带标记的原始绘图 h.Marker = 'none'; % 关闭标记显示 ``` ### 关键参数说明 1. `Marker`属性:控制数据点标记 - `'o'`圆形标记,`'*'`星号标记 - `'none'`关闭标记显示 2. `LineStyle`属性:控制连线样式 - `'-'`实线,`'--'`虚线 建议通过`set`函数批量修改图形属性以提高代码可读性[^1]。 相关问题
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值