一、 Basic plotting
matlab具有强大的绘图功能
1. plot()
- plot(x,y)在x,y画点
- plot(y) 默认x=[1…n] n=length(y)
Example
plot(cos(0:pi/20:2*pi));
一共是四十个点
2. hold on/off
matlab默认后面画的图会覆盖前面画的图
如果想保留前面画的图,就要用到hold on
hold off则是结束
3. Plot Style
plot(x,y,‘str’)
Example
也可以同时画多个图:
>>x=0:0.5:*pi;
>> y=sin(x);h=cos(x);w=1./(1+exp(-x));
>> g=(1/(2*pi*2)^0.5).*exp((-1.*(x-2*pi).^2)./(2*2^2));
%注意这里的表达式用的都是.*和./,因为正如之前所说,
%传进来的x与y都是矩阵,所以需要的是对应相乘/相除
>> plot(x,y,'bd-',x,h,'gp:',x,w,'ro-',x,g,'c^-');
4. legend()
legend(‘L1’,‘L2’,…)
给图中的多个图加上图标,如为上图加上图标,只需要在最后再加一句:
legend(‘sin(x)’,‘cos(x)’,‘sigmoid’,‘Gauss function’);
还可以控制legend的位置,如:
legend(‘t^2’,‘sin(2\pit)’,‘location’,‘northwest’)
5. title() and ?label()
- title()
- xlabel()
- ylabel()
- zlabel()
example
>>x=0:0.1:2*pi;y1=sin(x);y2=exp(-x);
>>plot(x,y1,'--*',x,y2,':o');
>>xlabel('t = 0 to 2\pi');
%这里pi前加反斜杠、表示这里的pi要转义,图中就会显示Π*
>>ylabel('values of sin(t) and e^{-x}');
%这里-x必须要用大括号括起来表示是一个整体*
>>title('Function Plots of sin(x) and e^{-x}');
>>legend('sin(t)','e^{-x}');
6. text() and annotation()
用LaTex表示数学表达式
>>x=linspace(0,3);y=x.^2.*sin(x);plot(x,y);
%linspace - 生成线性间距向量
%此 MATLAB 函数 返回包含 x1 和 x2 之间的 100 个等间距点的行向量。
>> line([2,2],[0,2^2\*sin(2)]);
%就是一条(2,0)到(2,2^2\*sin(2))的线
>> str='$$ \int_{0}^{2} x^2\sin(x) dx $$';
%$$ 表示LaTex表达式开头和结尾
%\int表示积分符号
%_{}表示下标
% ^{}表示上标
% \表示转义符
>> text(0.25,2.5,str,'Interpreter','latex');
>> annotation('arrow','x',[0.32,0.5],'Y',[0.6,0.4]);
%0.32、0.5、0.6、0.4表示的都是比例,所以范围是[0,1],x是从左到右,y是从上到下
二、 Grapgical object properties
- Font
- Font size
- Line width
- Axis limit(坐标轴)
- Tick position(Tick指的是刻度)
- Tick label
- Figure Object 指的是画布
- Axes Object 指的是坐标轴
- Line Object 指的是线
1. Figure Adjustment
(1) Identifying the Handle of An Onbject
- Upon creation:
h=plot(x,y); - Utility functions:
(2) Setting Axes Limits
set(gca,‘XLim’/‘YLim’,[-n,n]) 将x坐标/y坐标改为[-n,n]
(3) Setting Font and Ticks of Axes
set(gca,‘Font’,25);
set(gca,‘XTick’,0:pi/2:2*pi);
会根据所给的实际值修改刻度的位置与值
set(gca,‘XTickLabel’,0:90:360)
将刻度的值改为所给的值,而不管所给值与实际位置的值是否相符
Example
>>x=linspace(-10,10);y=sin(x);plot(x,y);
>>set(gca,‘XTick’,-2pi:pi/2:2pi)
放大一部分看
即变成了按照pi/2 的整数倍来当刻度
>>set(gca,‘XTickLabel’,-10:1)
不修改刻度位置,只修改值
这个的用处是将刻度设置为弧度制或特殊符号位
如:先用set(gca,‘XTick’,-2pi:pi/2:2pi)将刻度位置设置好
然后
>>set(gca,‘FontName’,‘Tex’);
>>set(gca,‘XTickLabel’,{’-2\pi’,’-3\pi/2’,’-\pi’,’-\pi/2’,‘0’,’\pi/2’,’\pi’,‘3\pi/2’,‘2\pi’});
结果:
(4) Line Spacification
h=plot(x,y);
set(h,‘LineStyle’,’-.’,‘LineWidth’,1.0,‘Color’,‘r’);
h的LineSTyle改为’-.’,LineWidth改为1.0,Color改为’g’。
(5) Marker Specification
指的是点
- face 点的填充颜色
- edge 点的边框颜色
Example
>> x=rand(20,1);
>> set(gca,'FontSize',18);
>> plot(x,'-md','LineWidth',2,'MarkerEdgeColor','k',...
'MarkerFaceColor','g','MarkerSize',10);
%一个属性名跟一个属性值,属性值代表什么意思可查看前文中Plot Style中的表
>> xlim([1,20])
也可给已有图加Marker
>> h=plot(x,sin(2*pi.*x));
>> h.set(‘Marker’,‘o’,‘MarkerEdgeColor’,‘k’,…
‘MarkerFaceColor’,‘g’,‘MarkerSize’,3);
>>
2. Multiple Figures
画两张图(并不是在同一张图里画两个)
>> x=-10:0.1:10;
>> y1=x.^2-8;
>> y2=exp(x);
>> figure,plot(x,y1);
%加上关键字figure,呼叫figure
>> figure,plot(x,y2);
figure也可以指定位置与大小
figure(‘Position’,[left,bottom,width,height])
3. Several Plots in One Figure
在一个figure上有很多的plots,如:
subplot(m,n,1)
example
grid 是格线
4. Saving Figures into Files
位图&矢量图
位图由像素(图片元素)的单个点组成的,这些点可以进行不同的排列和染色以构成图样,当放大位图时,可以看见赖以构成整个图像的无数单个方块。
矢量图是由线连接的点,矢量文件中的图形元素称为对象。每个对象都是一个自成一体的实体,它具有颜色、形状、轮廓、大小和屏幕位置等属性。
位图的特点是可以表现色彩的变化和颜色的细微过渡,产生逼真的效果,缺点是图片放大会失真。矢量图则是放大不会失真。
高精度要用print