数据可视化二:Matlab数据可视化(一)

数据可视化二:Matlab数据可视化(一)

目录:

1、Matlab离散数据可视化:

2、二维曲线绘制实验:


1、Matlab离散数据可视化:

绘制离散函数的图形,其中自变量的取值范围是(0,16)的整数。

   思考:根据如下指令,试着修改颜色、线型、

    plot(x, y, 'CLM');%控制颜色,线形状,点C 代表颜色(Colors),L 代表曲线的格式(Line Styles),M代表曲线所用的线标(Markers)。

   线型 线方式: - 实线 :点线 -. 虚点线 - - 波折线。

   线型 点方式: . 圆点 +加号 * 星号 x x形 o 小圆

   颜色: y黄; r红; g绿; b蓝; w白; k黑; m紫; c青.

答:程序分析:

 

图1.1 定义函数

①n=1:0.2:15;%代表一个列向量,这个向量的第一个元素是1,最后一个元素是15,而每两个元素之间的差是0.2;

②y=1./((n-3).^2+1)+1./((n-9).^2+4);%1后面的.指的是n的输入可能是向量或矩阵,加点之后函数对矩阵也适用,可以实现程序的向量化,提高效率;

③plot(n,y,'*')%plot函数用于x轴和y轴均为线性刻度,列出y与n之间平面绘图,图线形态改为*

结果如图:

 

图1.2 运行结果

修改测试:

xlabel('Input Value'); % x轴注解  

ylabel('Function Value'); % y轴注解  

title('Two Trigonometric Functions'); % 图形标题  

legend('y = sin(x)','y = cos(x)'); % 图形注解  

grid on; % 显示格线

 

图1.3 程序代码

运行结果:

 

图1.4 运行结果

 

2、二维曲线绘制实验:

2.1 设计实验演示验证plot

 设置三个函数y,z,h均以x作为变量,验证函数plot,subplot,set, axis,并使用grid on为图形加网格, box on加边框线。

x=0:0.1:5;

 y=sin(x);

z=cos(x);

h=tan(x);  

subplot(2,1,1);

plot(x,y);

subplot(2,1,2);

plot(x,z);  

axis([0 4 0 20]);

h=plot(x,y);

set(h,'color','b');  

set(gca,'XGrid','on','YGrid','off');

set(gca,'color','g');

grid on

box on

思考:使用Matlab help指令(或百度),了解subplot,set,axis的用法。

答:(1)matlab中subplot(m,n,p)可以在一个figure中画m×n个子图,p可以指定子图的位置,一般情况下p为单个数字,p为向量时可以合并多个子图为一个子图。

(2)matlab为每个显示的对象创建与之对应的句柄。通过对象句柄,可以调整图形的属性。get和set函数用于查询和设置句柄图形对象的属性。

(3)gca表示当前绘图区域

(4)对象句柄:一个对象变量,一个标识符,用来标识对象的。

代码说明:

x=0:0.1:5; % 代表一个列向量,这个向量的第一个元素是0,最后一个元素是5,而每两个元素之间的差是0.1;

y=sin(x); % 设置y函数

z=cos(x); % 设置z函数

h=tan(x); % 设置h函数

subplot(2,1,1); % 在一个figure中绘制2*1个子图,指定第一个子图的位置

plot(x,y); % 将y函数绘制在第一个子图的位置

subplot(2,1,2); % 指定第二个子图的位置

plot(x,z); % 将z函数绘制在第二个子图的位置

axis([0 4 0 20]); % 设置x轴的范围为0到4,y轴的范围为0到20

h=plot(x,y); % 创建了一个图像,引用句柄h定义为函数plot(x,y),上面的axis函数失效

set(h,'color','b'); % 设置变量h的颜色为蓝色

set(gca,'XGrid','on','YGrid','off'); % 当前绘图区域绘制x轴垂直网格线,不绘制y轴网格线

set(gca,'color','g'); % 当前绘图区域设置背景色为绿色

grid on % 在图像中显示网格线

box on % 将图轴方框绘制出来

运行结果:


图2.1 运行结果

 

2.2 设计函数y1=2e-0.5x和y2=cos(4πx)绘制其曲线,为其添加title(图形名称) ,label(x轴说明),ylabel(y轴说明),text(x,y,图形说明),legend(图例1,图例2,…)。

x=0:pi/100:1*pi;

y1=2*exp(-0.5*x);

y2=cos(4*pi*x);

plot(x,y1,x,y2)

title('x from 0 to 2{\pi}');             

xlabel('Variable X');                 

ylabel('Variable Y');                  

text(0.8,1.5,'曲线y1=2e^{-0.5x}');      

text(2.5,1.1,'曲线y2=cos(4{\pi}x)');

legend(‘y1’,’y2’)   

思考:使用Matlab菜单,直接进行title,legend的修改。使用Matlab help指令(或百度),了解text的用法。

答:(1)text函数用于在图形中的指定位置上显示字符串。

(2)legend函数用于对各种图标进行标注

代码修改如下:


图2.2 程序代码

close all % 关闭所有的图形视窗

x=0:pi/100:1*pi; % 定义x列向量,这个向量的第一个元素是0,最后一个元素是π,而每两个元素之间的差是π/100;

y1=2*exp(-0.5*x); % 定义y1函数;

y2=cos(4*pi*x); % 定义y2函数;

plot(x,y1,x,y2) % 在同一个figure中绘制y1和y2函数;

title('两条曲线测试'); % 给绘制的图一个标题;       

xlabel('变量X'); % x轴注释;                

ylabel('变量Y'); % y轴注释;               

text(0.8,1.5,'y1'); % 在(0.8,1.5)的坐标点显示字符串“y1”;     

text(1.8,0.3,'y2'); % 在(1.8,0.3)的坐标点显示字符串“y2”;  

legend('y1=2e^(-0.5x)','y2=cos(4*pi*x)'); % 对图标进行标注;

axis([0 3.2 -1.1 3]); % 设置x轴的显示范围为0到3.2,y轴的显示范围为-1.1到3;

运行结果:


图2.3 运行结果


2.3 设计函数y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx),并在同一坐标内绘制曲线,验证hold on/off命令的切换。

x=0:pi/100:2*pi;

y1=0.2*exp(-0.5*x).*cos(4*pi*x);

plot(x,y1)

hold on

y2=2*exp(-0.5*x).*cos(pi*x);

plot(x,y2);

hold off

 思考:去掉hold on/hold off结果的区别?

答:hold on:在当前图的轴中画了一幅图,再画另一幅图时,原来的图还在,与新图共存。

hold off:在当前图的轴中画了一幅图,再画另一幅图时,原来的图不在了,原图被替换为新图。

(1)存在hold on/hold off:

 

图2.4 运行结果

(2)删除hold on,只有y2存在,y1不存在了:

 

图2.5 运行结果

 

2.4 设计函数x=exp(i*t)和y=[x;2*x;3*x]'在同一坐标中,绘制3个同心圆,并加坐标控制,并使用 grid on加网格线, box on加坐标边框,axis equal使坐标轴采用等刻度。

t=0:0.01:2*pi; 

x=exp(i*t);

y=[x;2*x;3*x]'; 

plot(y) grid on;            %加网格线

box on;            %加坐标边框

axis equal          %坐标轴采用等刻度

 思考:grid on和grid off进行网格线的控制,如何进行网格线坐标的控制?(采用set命令 ,例如set(gca,'YTickMode','manual','YTick',[-16384,0,16384])

set(gca,'XTickMode','manual','XTick',[-21846,-10922,0,10922,21846]))

答:(1)程序分析:

t=0:0.01:2*pi; % 定义t列向量,这个向量的第一个元素是0,最后一个元素是2π,而每两个元素之间的差是0.01;

x=exp(i*t); % 定义x变量,圆的参数方程是x=cost,y=sint,而复数exp(i*t)的实部是cost,虚部是sint,这是圆的复数方程,其中i是虚数单位;

y=[x;2*x;3*x]'; %定义y函数,建立一个三列x行的矩阵

plot(y) % 绘制y函数的曲线

grid on; % 加网格线

box on; % 加坐标边框

运行结果:

 

图2.6 运行结果

(2)set(gca,'YTickMode','manual','YTick',[-16384,0,16384])命令:

设置y轴的网格线坐标

 

图2.7 运行结果

(3)set(gca,'XTickMode','manual','XTick',[-21846,-10922,0,10922,21846])):

设置x轴的网格线坐标

 

图2.8 运行结果

(4)set(gca,'YAxisLocation','right'):

将y轴的刻度设置到右侧

 

图2.9 运行结果

(5)set(gca, 'XTick',[-2,0,2] ):

设置x轴的记号点:

 

图2.10 运行结果

 

2.5 设计函数y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx),以不同标度在同一坐标内绘制曲线,验证函数plotyy。

 x=0:pi/100:2*pi;

y1=0.2*exp(-0.5*x).*cos(4*pi*x);

y2=2*exp(-0.5*x).*cos(pi*x);

plotyy(x,y1,x,y2);

答:plotyy(x1,y1,x2,y2);将(x1,y1)绘制在左侧纵坐标轴中,将(x2,y2)图以右侧的纵坐标为纵轴。

加上图例,legend('y1=0.2*exp(-0.5*x).*cos(4*pi*x)','y2=2*exp(-0.5*x).*cos(pi*x)')

运行结果如图:

图2.11 运行结果


  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值