matlab 郭彦甫 5  绘图初步

 1.基本绘图

%%
x=linspace(0,2*pi,20);   %将x从0-2*pi  分成20份
y=cos(x);%  蓝色     length(y)=20
z=sin(x);%  橙色    length(z)=20
hold on    %保持所有图像在同一个坐标系中  同时保留   否则,后面的图像回之前  前面的图像会通过刷新缓存而删除(opengl)
    plot(x,y);   %四个函数为什么x值的范围不同   plot(x,y)绘制每个向量对  (x,y)根据x y取值 
    plot(z);     %绘制每个向量对(x,y)  其中x=[1...n]   n=length(z)  z的个数与x被分份数相同
                 %所以此时z的个数应该为20  所以x从1-20 取值
                 %length(sin(0:pi/20:2*pi))=41
    plot(sin(0:pi/20:2*pi));  %黄色   同z   (函数值)因变量y的个数为41  x取值从0-41
    plot(cos(0:pi/20:2*pi));   %紫色  同上   x取值从0-41  
hold off

 

2.设置

plot style

 

matlab图形允许控制的直观特征

LineWidth          指定线条的宽度

MarkerEdgeColor        指定标记颜色或填充标记(圆形、方形、菱形、五角形、六角形和四个三角形)的边的颜色

MarkerFaceColor      指定填充标记的面的颜色

MarkerSize        指定标记的大小

LineStyle         指定线形

Color          颜色

Marker                           

修改线条外观 添加图例

线型    标记符号   颜色

hold on    
    plot(sin(0:pi/20:2*pi),'or--');    %or--    以-- 绘制xy图像,在数据点位置防止圆形标记,并将标记和线条颜色设置为红色
    plot(cos(0:pi/20:2*pi),'xg:');    %xg:     以...绘制图像,在数据点位置放置X标记  并将标记和.线的颜色设置为绿色
hold off
legend('sin(x)','cos(x)');               %图例    图例按绘制的顺序 给定字符串名称

 

添加title(  )   、label(  )、Text(  ) 、annotation(  )

显示标题  标签   文本  箭头等

x=0:0.1:3;   %自变量赋值

y1=sin(x);
y2=exp(-x);
y3=x.^2.*sin(x);   %注意这里的运算符号   .^    .*    包括标量和向量

hold on
      %plot(x,y1,'--*',x,y2,':o',x,y3,'--b');  %同时绘制三个函数 2016b 不支持
plot(x,y1,'--*');
plot(x,y2,':o');
plot(x,y3);
hold off
%部分1
xlabel('t=0 to 2\pi');       % 坐标轴标签   x轴
ylabel('sin(t) and e^{-x}');    %y轴标签
title('plots sine exp');      %坐标系名称 
legend('sin(t)','e^{-x}','x^2*sin(x)');  %三个图例

%文字说明和箭头
line([2,2],[0,2^2*sin(2)]);    %绘制线条   根据参数提供的数据
str='$$ \int_{0}^{2} x^2\sin(x) dx $$';%  显示的文字内容  通常为函 数表达式   文字用latex 语言来表示   注意$$符号的使用
text(0.25,2.5,str,'interpreter','latex');  %向坐标系中添加 前两个数据表示添加文字位于坐标系中的位置   str变量为内容   
annotation('arrow','X',[0.32,0.5],'Y',[0.6,0.4]);%画箭头

 

说明:line(x,y) 使用向量 x 和 y 中的数据在当前坐标区中绘制线条。如果 x 和 y 中有一个是矩阵或两者都是矩阵,则 line 将绘制多个线条。与 plot 函数不同,line 会向当前坐标区添加线条,而不删除其他图形对象或重置坐标区属性。

 

 

annotation()创建注释:用于画箭头

X、Y是箭头的位置相对于整个方框的比例,
[0.32,0.5]是指:x坐标从整个图形32%的地方到50%的地方(从左到右)
[0.6,0.4]是指:y坐标从60%的地方到40%的地方(从上到下)

 

练习:

 

代码如下:

t=(1:0.01:2);
f=t.^2;
g=sin(2*pi*t);
hold on
plot(t,f,'k');  %黑色
plot(t,g,'or')   %o型  红色
hold off
%坐标轴标题
xlabel('t=1-2:t^2 and sin(2\pit)');   %pi需要转义  表示π
ylabel('t^2 and sin(2\pit)');
title('read me');
%图例
legend('t^2','sin(2\pit)');

 

图的标准设置   利用句柄的方法   分析继承关系   (联想opengl的相关内容)   父亲和儿子 孙子

 几个属性

Font字体

Font size 字体大小

Line width 线宽

Axis limit 轴的限制

Tick postition 标记的位置

Tick label 标记的标签

 

图形对象

图形有许多物体组成   见上图

图像的属性    图像的窗口---》查看---》属性编辑器

修改对象的属性    利用句柄的形式修改

1.标识一个对象的handle

 

获取或修改属性

获取为get()        修改属性为 set()

x=linspace(0,2*pi,1000);
y=sin(x);
h=plot(x,y);
get(h)     %获取h函数的属性   函数图像 (曲线)
get(gca)   %获取坐标轴属性
get(gcf)   %获取当前figure 属性 祖宗节点
%此时 的gca gcf h就当前对应对象的句柄

 

生成图像后不要关闭图像窗口,才能设置各个方面的属性

 

案例设置x轴的限制

x=linspace(0,2*pi,1000);
y=sin(x);
h=plot(x,y);
set(gca,'XLim',[0,2*pi])%未加此语句前  x轴显示最大值为7    刻度发生变化
%添加此语句后,x轴显示最大值为2*pi  约为6.28
set(gca,'YLim',[-1.2,1.2])

 

设置轴的字体和刻度间隔

 set(gca,'FontSize',25)

x=linspace(0,2*pi,1000);
y=sin(x);
h=plot(x,y);

set(gca,'FontSize',25);       %图2
set(gca,'XTick',0:pi/2:2*pi);  %图3
set(gca,'XTickLabel',0:90:360);   %图4
set(gca,'FontName','Rod');    %图5
set(gca,'XTickLabel',{'0','\pi/2','\pi','3\pi/2','2\pi'});
%图5

                      1                    2                     3                    4

           5

 线规范

点击了解👉text 向数据点添加文本说明
点击了解👉Text属性 坐标区文本的外观和行为
点击了解👉Line 图形线条的外观和行为           

转载于漓艾初 matlab 关于interpreter的使用
https://blog.csdn.net/aron_conli/article/details/104815829

Line style and width

set(h,'LineStyle','-.','LineWidth',7.0,'Color','g')
%plot(x,y,'-.g','LineWidth',7.0)   此语句与上面的语句功能相同  %alternative 非传统的  可替代的

delete(h)   删除h对象  (句柄)    坐标系保留  但是函数图像不存在

标记规范   marker specifcation   

face and edge colors of the markder   标记点的面和边缘的颜色

x=rand(20,1);                %随机产生20个  小于1的数
%length(x)                   %检测个数
set(gca,'FontSize',18);           %设置坐标轴 字体大小为18
plot(x,'-md','LineWidth',2,'MarkerEdgeColor','k',...   %  数据点为marker     edge为边为黑色   face为面为绿色    
    'MarkerFaceColor','g','MarkerSize',10);  %
xlim([1,20]);

练习: 

t=linspace(1,2);
f=t.^2;
g=sin(2*pi*t);
hold on
h=plot(t,f,'k');
g=plot(t,g,'or');
hold off
legend('t^2','sin(2\pit)','Location','northwest','FontWeight','bold')  %注意legend的设置    
xlabel('xxx');
ylabel('yyy');
title('title');
xticks(1:0.2:2);                 %坐标轴范围
yticks(-1:0.5:4);                %y轴范围

set(h,'LineWidth',4);            %h表示绘制出来的图像  所以应该是h=plot()  h为句柄  而不是f为句柄
set(gca,'FontSize',15);             %坐标轴字号大小
set(g,'MarkerFaceColor','b');        %改变g函数face 的颜色
%set(g,'MarkerFaceColor','#0000ff') %自定义颜色

 

Multiple Figures   多图

直接画两个图-------图中的坐标系均不同

create a figure window by calling figure

x=-10:.1:10;
y1=x.^2-8;
y2=exp(x);
figure,plot(x,y1);   %此为figure1
figure,plot(x,y2);   %此为figure2

 

 

此时先画figure1    后画figure2    所以都画完后,当前的gca   gcf  全局句柄为figure2图像相关   所以注意调用句柄时为  current figure

Figure Position and Size    图像位置和大小

figure('Position',[left,bottom,width,height]);   类似css布局

x=-10:.1:10;
y1=x.^2-8;
y2=exp(x);
%figure('Position',[left,bottom,width,height]);

figure('Position',[30,200,500,700]);   %1顺序不能反  先画figure  画布
plot(x,y1);    %2再用plot 画函数图像

 

一个画布中画过个坐标系   多个图标  多个plot

subplot(m,n,1);   m*n 行列式   m为行数    n为列数     最后面的1 表示表中的索引位置

t=0:0.1:2*pi;
x=3*cos(t);
y=sin(t);
%hold on
subplot(2,2,1);plot(x,y);axis normal      %normal  默认的情况  长方形
subplot(2,2,2);plot(x,y);axis square      %x轴  y轴总长度相等  看起来像正方形
subplot(2,2,3);plot(x,y);axis equal       %x unit  和y unit 两个单元长度相等
subplot(2,2,4);plot(x,y);axis equal tight  %再equal的基础上 沿着函数图像切齐
%hold off

         

 

 

axis off  指向当前current plot 的坐标系   也就是最后一个   当执行此命令时,最后一个画的坐标系 会被关闭  但是函数图像 给与保留  因为在画布对象中 这两个对象没有继承关系  

box off  同上指向current plot 的box    坐标系中的右侧和顶部的黑色线条 被隐藏

grid on  同上  current plot 坐标系中出现网格 

 

将数据保存到文件当中         保存图像到文件   

 

 

保存两种类型一种为位图 格式   另一种为向量(矢量)图格式  推荐后一种 放大不失真;当有其他图像时  需要使用位图

gcf  句柄  figure

高解析度  需要参考print

点击了解👉print 打印图窗或保存为特定文件格式

posted on 2023-07-27 10:49  学习记录园  阅读(24)  评论(0编辑  收藏  举报