数据可视化处理实验DOC.docx
《数据可视化处理实验DOC.docx》由会员分享,可在线阅读,更多相关《数据可视化处理实验DOC.docx(22页珍藏版)》请在冰豆网上搜索。
数据可视化处理实验DOC
科学计算与数据处理实验报告
学 号
姓 名
实验名称
数据可视化处理实验
实验目的
1、掌握MATLAB中二维曲线图、三维曲线图、三维曲面图的绘制方法
2、掌握MATLAB中常用统计图的绘制方法
3、熟悉MATLAB中三维图形常用编辑方法
4、了解MATLAB中动画的绘制方法
实验方案
1、离散数据可视化实验:
绘制离散函数
的图形,其中自变量的取值范围是(0,16)的整数。
y=1./((n-3).^2+1)-1./((n-9).^2+4);plot(n,y,'*')
2、二维曲线绘制实验:
设计实验演示验证plot、subplot、axis、set、legend、xlabel、ylabel、zlabel、title、text、grid、box、hold、plotyy、fplot等函数在绘制二维曲线中的功能和使用方法。
a)设置三个函数y,z,h均以x作为变量,验证函数plot,subplot,set,axis,并使用gridon为图形加网格,boxon加边框线。
b)设计函数y1=2e-0.5x和y2=cos(4πx)绘制其曲线,为其添加title(图形名称),label(x轴说明),ylabel(y轴说明),text(x,y,图形说明),legend(图例1,图例2,…)。
c)设计函数y1=0.2e-0.5xcos(4πx)和y2=2e-0.5xcos(πx),并在同一坐标内绘制曲线,验证holdon/off命令的切换。
d)设计函数x=exp(i*t)和y=[x;2*x;3*x]'在同一坐标中,绘制3个同心圆,并加坐标控制,并使用gridon加网格线,boxon加坐标边框,axisequal使坐标轴采用等刻度。
e)设计函数y1=0.2e-0.5xcos(4πx)和y2=2e-0.5xcos(πx),以不同标度在同一坐标内绘制曲线,验证函数plotyy。
f)设计函数f(x)=cos(tan(πx)),使用用flpot函数绘制其曲线。
3、三维曲线绘制实验:
设计实验演示验证plot3、mesh、surf等函数在绘制三维曲线、曲面中的功能和使用方法。
a)设计函数y=sin(t),x=cos(t),z=(t+1).^t.*sin(t).*cos(t),并使用plot3函数绘制这三个函数的曲线。
b)设计函数z=sin(x+sin(y))-x/10;,分别绘制带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz。
并使用函数surf绘制该函数图像
4、统计图绘制实验:
设计实验演示验证面域图(area)、
a)设计一个数组Y=[3,8,9,4,1;6,3,5,2,7;5,4,3,8,6],使用area(x',Y',0)绘制相应的面域图。
直方图(bar、barh、bar3、bar3h)
设计一个数组Y=[3,7,2,5,1;3,7,5,2,1;5,4,1,2,5],在同一个图中分别应用以下函数bar(x',Y','stacked')bar3h(x',Y','grouped')、bar3(x',Y','stacked')、barh(x',Y','grouped')画出相应的直方图。
b)饼图(pie、pie3)
设计一个数组a=[1,1.6,1.2,0.8,2.1],在同一个图中分别应用以下函数pie(a,[10100])、pie3(a,double(a==min(a)))画出相应的饼图。
c)散点图(scatter、scatter3、plotmatrix):
函数scatter
设计函数Y=X.^2+rand(size(X)),使用函数scatter(X,Y)
以X中数据为横坐标,以Y中数据位纵坐标描绘散点图,点的形状默认使用圈。
函数scatter3
设计数组x=[4229042.634230585.024231384.964231773.634233028.584233296.714235869.684236288.29];y=[431695.4441585.8432745.6436933.7428734.4431946.3428705.0432999.5];z=[1.0191.0231.0111.0221.0201.0221.0221.023];
使用函数scatter3(x,y,z),绘制出相应的三围散点图。
d)plotmatrix
设计函数x=randn(100,2),并使用 plotmatrix(x) 绘制出相应的散点图
5、三维图形编辑(精细控制)实验:
设计实验演示验证用view、rotate、colordef、colormap、shading、light、lighting、material、surfl等函数对三维图形进行精细控制的方法。
a)使用z=peaks(20);,将颜色填充设为默认色,使用surfl(z)验证函数surfl的功能。
b)使用z=peaks(20);,将颜色填充设为默认色,背景设为白色,使用rotate(h,[-2,-2,0],20,[2,2,0]);验证函数rotate的功能。
c)使用z=peaks(10);,使用view(0,40);验证函数view的功能。
6、动画绘制实验:
设计实验演示验证getframe与movie相结合绘制动画的方法。
a)首先设置创建山峰图形数据
b)绘制带光照的表面,限制绘图范围
c)旋转山峰,从1到360度,每一度捕捉一帧
d)view(-37.5+i,30)从水平-37.5+i度,垂直30度的方向看山峰
e)每从一个角度看到一张图像(帧),就存储到m
f)movie(m)把刚才存到m里的图像连续播放一遍。
实验记录
1、离散数据可视化实验:
绘制离散函数
的图形,其中自变量的取值范围是(0,16)的整数。
n=1:
0.5:
16;
y=1./((n-3).^2+1)-1./((n-9).^2+4);
plot(n,y,'*')
2、二维曲线绘制实验:
设计实验演示验证plot
设置三个函数y,z,h均以x作为变量,验证函数plot,subplot,set,axis,并使用gridon为图形加网格,boxon加边框线。
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([04020]);
h=plot(x,y);
set(h,'color','b');
set(gca,'XGrid','on','YGrid','off');
set(gca,'color','g');
gridon
boxon
设计函数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('xfrom0to2{\pi}');
xlabel('VariableX');
ylabel('VariableY');
text(0.8,1.5,'曲线y1=2e^{-0.5x}');
text(2.5,1.1,'曲线y2=cos(4{\pi}x)');
legend(‘y1’,’y2’)
设计函数y1=0.2e-0.5xcos(4πx)和y2=2e-0.5xcos(πx),并在同一坐标内绘制曲线,验证holdon/off命令的切换。
x=0:
pi/100:
2*pi;
y1=0.2*exp(-0.5*x).*cos(4*pi*x);
plot(x,y1)
holdon
y2=2*exp(-0.5*x).*cos(pi*x);
plot(x,y2);
holdoff
设计函数x=exp(i*t)和y=[x;2*x;3*x]'在同一坐标中,绘制3个同心圆,并加坐标控制,并使用gridon加网格线,boxon加坐标边框,axisequal使坐标轴采用等刻度。
t=0:
0.01:
2*pi;
x=exp(i*t);
y=[x;2*x;3*x]';
plot(y)
gridon;%加网格线
boxon;%加坐标边框
axisequal%坐标轴采用等刻度
设计函数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);
设计函数f(x)=cos(tan(πx)),使用用flpot函数绘制其曲线。
fplot('cos(tan(pi*x))',[0,1],1e-4)
3、三维曲线绘制实验:
设计实验演示验证plot3、mesh、surf等函数在绘制三维曲线、曲面中的功能和使用方法。
设计函数y=sin(t),x=cos(t),z=(t+1).^t.*sin(t).*cos(t),并使用plot3函数绘制这三个函数的曲线。
t=0:
pi/100:
10*pi;
y=sin(t);
x=cos(t);
z=(t+1).^t.*sin(t).*cos(t);
plot3(x,y,z);
title('Linein3-DSpace+++WEIMAN');
xlabel('X');ylabel('Y');zlabel('Z');
gridon;
设计函数z=sin(x+sin(y))-x/10;,分别绘制带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz。
并使用函数surf绘制该函数图像
[x,y]=meshgrid(-7:
0.5:
7);
z=sin(sqrt(x.^4+y.^4))./sqrt(x.^4+y.^4+eps);
subplot(2,2,1);
mesh(x,y,z);
title('mesh(x,y,z)+++weiman1')
subplot(2,2,2);
meshc(x,y,z);
title('meshc(x,y,z)+++weiman2')
subplot(2,2,3);
meshz(x,y,z)
title('meshz(x,y,z)+++weiman3')
subplot(2,2,4);
surf(x,y,z);
title('surf(x,y,z)');
4、统计图绘制实验:
设计实验演示验证面域图(area)
x=-2:
2
Y=[3,8,9,4,1;6,3,5,2,7;5,4,3,8,6]%(3*5)的Y数组的
CS=flipud(cumsum(Y))
area(x',Y',0)
legend('因素A','因素B','因素C')
gridon,
colormap('jet')
title('area+++weiman')
直方图(bar、barh、bar3、bar3h)
x=-2:
2;
Y=[3,7,2,5,1;3,7,5,2,1;5,4,1,2,5];
subplot(2,2,1)
bar(x',Y','stacked')
title('bar+++weiman')
xlabel('x'),ylabel('\Sigmay'),colormap('jet')
legend('因素A','因素B','因素C')
subplot(2,2,2)
bar3h(x',Y','grouped')
title('bar3h+++weiman')
subplot(2,2,4)
bar3(x',Y','stacked')
title('bar3+++weiman')
subplot(2,2,3)
barh(x',Y','grouped')
title('barh+++weiman')
饼图(pie、pie3)
a=[1,1.6,1.2,0.8,2.1];
subplot(1,2,1)
pie(a,[10100])
axisequal
title('pie+++weiman')
legend('因素A','因素B','因素C','因素D','因素E')
subplot(1,2,2)
pie3(a,double(a==min(a)))
colormap(jet)
title('pie3+++weiman')
legend('因素A','因素B','因素C','因素D','因素E')
散点图(scatter、scatter3、plotmatrix)
1.scatter(X,Y)
X=[1:
10];
Y=X.^2+rand(size(X));
scatter(X,Y)
set(gca,'color','y');
title('scatter+++weiman')
函数scatter3
例子:
x=[4229042.634230585.024231384.964231773.634233028.584233296.714235869.684236288.29];
y=[431695.4441585.8432745.6436933.7428734.4431946.3428705.0432999.5];
z=[1.0191.0231.0111.0221.0201.0221.0221.023];
scatter3(x,y,z)
set(gca,'color','y');
title('scatter3+++weiman')
注:
x,y,z必须是等长度的数对(即三个等长的矢量)
Plotmatrix函数
x=randn(100,2)
plotmatrix(x)
5、三维图形编辑(精细控制)实验:
设计实验演示验证用view、rotate、colordef、colormap、shading、light、lighting、material、surfl等函数对三维图形进行精细控制的方法。
函数surfl功能
z=peaks(20);
>> colordef white ;
>> colormap jet;
>> shading interp;
>> surfl(z)
title('surfl+++weiman')
函数rotate功能
z=peaks(20);
subplot(1,2,1);surf(z);title('Default+++weiman');subplot(1,2,2);h=surf(z);title('Rotated+++weiman');rotate(h,[-2,-2,0],20,[2,2,0]);
函数view功能
z=peaks(10);
>> subplot(1,2,1);surf(z);title('Default+++weiman');
>> subplot(1,2,2);
>> subplot(1,2,2);h=surf(z);title('view+++weiman');
>> view(0,40);
6、动画绘制实验:
设计实验演示验证getframe与movie相结合绘制动画的方法。
%影片生成例子:
旋转一个三维表面绘图
[X,Y,Z]=peaks(50);%创建山峰图形数据
surfl(X,Y,Z)%绘制带光照的表面
axis([-1010-1010-1010])%限制绘图范围
axisvis3doff%三维坐标修正,关闭坐标轴箭头
axisequal%等比例显示三维坐标
shadinginterp%加个影子美化
colormap(copper)%着色为铜色
fori=1:
360%旋转山峰,从1到360度,每一度捕捉一帧
view(-37.5+i,30)%从水平-37.5+i度,垂直30度的方向看山m(i)=getframe;%每从一个角度看到一张图像(帧),就存储到m
end%每次看完,水平转动1度,直到1周360度;
cla%为播放影片清除坐标
movie(m)%把刚才存到m里的图像连续播放一遍,就是影片了.
实验总结
在本次实验中,分别学习了离散数据可视化实验、二维曲线图、三维曲线图、统计图绘制的绘制,以及三维图形编辑(精细控制)、动画绘制。
在离散数据可视化实验中,主要的收获是复习了实验1的内容,并初步接触到了画图函数plot;在二维曲线图的绘制中,主要使用到了单一的画图函数plot,将多个图绘制在同一个窗口中的subplot函数,并通过xlabel、ylabel、zlabel对图像的坐标轴进行说明,通过legend函数对图例进行说明,通过title对所画图进行添加标题说明,还有通过gridon/off进行网格的添加或者去除等。
在三维曲线图的绘制的实验中,主要使用plot3函数进行三围函数对呃设置,并使用绘制带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz。
并使用函数surf绘制该函数图像。
在统计图绘制的实验中主要学习了面域图、直方图(一维、三维直方图)、饼图(一维、三维)、散点图(scatter、scatter3、plotmatrix)的绘制。
在三维图形编辑(精细控制)的实验中,主要学习了在三维空间图中,对所绘图像视角、图像颜色、背景颜色、亮度等细节进行精细控制。
在动画绘制实验中,主要通过设计函数,验证学习了getframe与movie相结合绘制动画的方法。
在本次实验中,主要掌握了在MATLAB中二维曲线图、三维曲线图、三维曲面图的绘制方法、常用统计图的绘制方法、三维图形常用编辑方法、动画的绘制方法。
并且已完成实验,达到了实验目的。