Matlab从入门到精通 Chapter5 数据可视化
5-1 图形绘制示例
>> x2=-17:0.02:3;
>> y2=1./((x2+3).^2+1)+1./((x2+9).^2+4)+5;
>> subplot(2,2,2);
>> plot(x2,y2,'rp');
>> axis([-17 3 5 6.5]);
>> title('figure2');
>> grid on
subplot 子图表绘制函数
默认情况下,plot函数将绘制图形的离散数据点用直线连接起来作为曲线
绘制图表的基本步骤:
- 绘制图表的数据,可以通过计算产生需要绘制图表的数组数据,从而能够确定图表的绘制范围;
- 在需要绘制多个子图表时,设定图表的位置
- 选择不同的绘图命令绘制图标
- 设置坐标轴的属性
- 添加图形注释,如坐标轴名称、图表名称等
5-2 二维图形的绘制
5.2.1 plot函数
功能:将数组中的数据绘制在相应的坐标平面上,并通过直线将这些点连接起来,形成连续曲线图形。
主要命令格式如下:
plot(x,'PropertyName',Property Value,....)
x表示绘制图表的数据,PropertyName表示图表属性的字符选项,Property Value表示对应的选值。当x不同时,绘制的曲线不同。
plot(x,y,'PropertyName',Property Value,....)
plot(x1,y1,x2,y2,'PropertyName',Property Value,....)
可以在窗口中同时绘制以x1和y1,x2和y2等分别为横坐标和纵坐标的曲线,实际上可以绘制任意多条曲线
>> %生成一维数组及其参数数组
>> a=0:0.1:1;
>> t=0:0.01:1;
>> %生成二维数组
>> y=sin(3*t').*exp(-t')*a;
>> %不同的绘制参数比较
>> %二维数组绘制曲线
>> subplot(2,2,1);
>> %两行两列取第一块
>> plot(y);
>> axis([0 100 0 1]);
>> xlabel('index');ylabel('y');
>> title('figure 1');
>> grid on
>> %figure 2 一维数组和二维数组绘制曲线
>> subplot(2,2,2);
>> plot(t,y);
>> axis([0 1 0 1]);
>> xlabel('t');ylabel('y');
>> title('figure2');
>> grid on
>>
>> %figure3 一维数组和二维数组绘制曲线
>> subplot(2,2,3);
>> plot(y,t);
>> axis([0 1 0 1]);
>> xlabel('y');ylabel('t');
>> title('figure3');
>> grid on;
>>
>> %figure 4 一维数组绘制曲线
>> subplot(2,2,4);
>> plot(t);
>> axis([0 100 0 1]);
>> xlabel('index');ylabel('t');
>> title('figure 4');
>> grid on
>>
axis normal:将当前的坐标轴恢复为全尺寸,并将单位刻度的所有限制取消。
当选择box off后,所绘制图形的边框取消,在equal和image fill 情况下,图形充满整个显示区域。
当需要将多个图形绘制在一个图形内时,用户可以选择hold属性来改变图形的叠绘情况:
- hold on: 新的曲线添加在原来的图形上
- hold off:释放当前图形,绘制新的图形
- hold:实现hold命令之间的切换
当关闭图形窗口,可以选择使用close函数;
当擦除图形窗口而不关闭时,可以采用clf命令
子图绘制:
- subplot(m,n,p) :将窗口分为m*n个子窗口,在第p个子窗口绘制图形
- subplot(m,n,p,'replace') :将窗口分为m*n个子窗口,在第p个子窗口绘制图形,并更新坐标系
- subplot(m,n,p,'align') :将窗口分为m*n个子窗口,在第p个子窗口绘制图形,并对齐坐标轴
- subplot(‘position’,[left bottom width height]) :在指定位置创建新的子图,并将其设置为当前坐标轴,
所设置的4个参数均采用归一化的参数设置,范围为(0,1),左下角坐标为(0,0)
plotyy函数绘制双坐标轴
- plotyy(x1,y1,x2,y2) :绘制两条曲线,x1-y1,x2-y2,两条曲线分别以左右纵轴为纵轴
- plotyy(x1,y1,x2,y2,fun) :绘制两条曲线,x1-y1,x2-y2,两条曲线分别以左右纵轴为纵轴,曲线的类型由fun来指定
- plotyy(x1,y1,x2,y2,fun1,fun2) :绘制两条曲线,x1-y1,x2-y2,两条曲线分别以左右纵轴为纵轴,曲线的类型分别由fun1和fun2来指定
fplot函数可以绘制由M文件名或者函数句柄定义的函数:
fplot(function,limits,tol,linespec):linespec表示图形的线形,颜色,数据点等
>> subplot(2,1,2);
>> f_hdl=@(x)sin(x)/(x);
>> fplot(f_hdl,[-10,10]);
>> title('figure 1:sin(x)/(x)');
>> xlabel('x');
>> ylabel('sin(x)/x');
>> grid on