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

本文接着上节的知识点总结继续分享更多的作图代码及作图方法。

一、坐标轴设计函数(续)

1.grid函数

        grid函数主要用于给坐标轴添加网格线,有以下集中调用方式:

grid on 添加网格线
grid off 删除网格线
grid 添加或删除网格线
grid minor 添加或删除细网格线

沿用上节帖子并在后面添加网格线能有:

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')
grid;

其实现效果为:

         值得注意的是,当输入双重grid时,表示先添加网格线后删除网格线,在最终的效果是没有网格线的;另外,当代码同时拥有“grid;”与“grid minor”时,优先显示细格的网格线,且两者不会冲突而不显示网格线。

2.box函数

        box函数能够给坐标轴添加边框

box on 添加边框
box off 删除边框
box 添加或删除边框

具体效果为(在代码后面加上了“box off;”)

 二、绘图窗口函数        

1.subplot函数

        subplot函数将一个窗口分为多个区域,每个区域可以绘制不同的图形,每次调用选中其中的一幅图进行操作即可。

                subplot(m,n,p)  或者  subplot(mnp)

        其中m*n代表将一个窗口拆分为m*n个区域(m行n列),且目前选择的图是第p个图。

        补充小知识点,认识其中的区别:在matlab中矩阵的数数方式是先数列再数行的。

举个例子:在matlab中先设置一个五阶的幻方矩阵,然后提取该矩阵中的第三个元素和第五个元素

T=magic(5)
A=T(3)
B=T(8)

效果为:

         可以看出在矩阵的计数中,是先数完一列在数下一列的,但是在subplot中的计数方式是完全与矩阵的计数方式相反了,在subplot中,计数是先数完一行在数下一行的,我在这里分别展示其区别是想让读者在写代码中能有意识的区分两者不同的计数顺序,以免以后的混淆。

        回到subplot(m,n,p)中,第p个图则不难判断在哪个方位了。

举一个例子更好地理解:

x=0:.1:3*pi;   %在matlab中0.3的0是可以省略的,直接写.3
y1=sin(x);
y2=cos(x);
y3=tan(x);
subplot(2,2,[1,2]);      %在2*2的图表中占据了第一、第二个位置
plot(x,y1);
subplot(2,2,3);          %在2*2的图表中占据了第三个位置
plot(x,y2);
subplot(2,2,4);          %在2*2的图表中占据了第四个位置
plot(x,y3);

其效果为:

2.figure/hold 创建窗口/图形保持

figure函数用于创建图形窗口对象,多次调用可创建多个窗口;而hold函数用于同一个窗口绘制多个叠加的图形,前面应用时也有提到过。

(1)figure

figure能利用默认属性值按顺序编排value创建新的图形窗口对象,即在第一个figure图形显示figure1,后面接着figure2,figure3......

 另外,我们也可以通过返回函数观察figure带的属性种类

x=0:.1:3*pi;  
y1=sin(x);
a=figure
plot(x,y1);

         由此可见,figure内部具有number, name, color, position, units 五个属性,我们可以根据需求改变某些属性值修改画布样式。

(2)figure('name','value')

根据上图figure的name属性,可以自定义修改以实现更改画布名称效果

x=0:.1:3*pi;   %在matlab中0.3的0是可以省略的,直接写.3
y1=sin(x);
figure('name','第一个figure')
plot(x,y1);

效果如下:

该设置有一个缺点则是画布名称处仍存在“figure 1:”字样,若需删除则需修改代码

x=0:.1:3*pi;   
y1=sin(x);
a=figure
plot(x,y1);
set(a,'name','第一个figure','Numbertitle','off')
%set设置,具体画布对象a,其中的名字改成‘第一个figure’,原本标题去除

(3)figure(h)     h为number类型

        h指的是目前绘图函数只针对于当前h窗口,若h窗口已经存在图形则会覆盖当前窗口之前的图像,若之前不存在图像,则会创建该窗口(后面的figure仍会按照之前的先后顺序创建对应窗口)

3.gcf/gca/gco  返回当前图形/坐标/对象句柄

        gcf (get current figure)返回当前图形,若没有图形窗口,就会重新创建一个。

        gca (get current axes)返回当前坐标轴。

        gco (get current object)返回当前的句柄,意思是该返回的对象是用户最后一次单击过的对象。

其调用方法为    h=gcf/ gca/ gco

由于其使用频率并不高,在这里没有更深入的解释,仅作了解即可。

由于加上后面的非常规绘图及三维绘图后篇幅过于长,一次在这里结束第二节的分享,未分享到的在后面一节继续为大家分享,若有感兴趣的小伙伴们可以去看看后续分享,若有什么问题可以在评论区留言,或者私聊我,我会力所能及的帮助一同学习的人。大家一同进步吧!

猜你喜欢

转载自blog.csdn.net/FSHznb/article/details/131564892