matlab经典作图
Matlab四位数据作图(Slice)
对如下数据,做出截面图,并按相应的颜色值设置数据;x y z s1 2 2 251 3 3 211 4 4 202 5 5 192 6 7 31这样一组s与x,y,z没有直接函数表达式关系的数据希望能够用slice函数绘出切面图,也就是说,在x=1这个切面上,应该有对应s=25 21 20这三种用颜色表示的函数值。
首先,看到slice命令的帮助文件中有个例子:[x,y,z] = meshgrid(-2:.2:2,-2:.25:2,-2:.16:2);v = x.*exp(-x.^2-y.^2-z.^2);xslice = [-1.2,.8,2]; yslice = 2; zslice = [-2,0];slice(x,y,z,v,xslice,yslice,zslice)colormap hsv这里的slice前三个参数,必须构成网格数据,如图:通过:[x,y,z] = meshgrid(-2:.2:2,-2:.25:2,-2:.16:2);figure;view(3);hold on;for i = 1 : size(x, 1)for j = 1 : size(x, 2)for k = 1 : size(x, 3)plot3(x(i, j, k), y(i, j, k), z(i, j, k), '.');endendend这些点构成了网格数据所以,我们需要制造网格数据,进行截面操作;close all;clc;clear;A = [1 2 2 251 3 3 211 4 4 202 5 5 192 6 7 31];x = A(:, 1)';y = A(:, 2)';z = A(:, 3)';% 提取有效数据xb = min(x);xe = max(x);yb = min(y);ye = max(y);zb = min(z);ze = max(z);sb = min(s);se = max(s);x1 = linspace(xb, xe, 30);y1 = linspace(yb, ye, 30);z1 = linspace(zb, ze, 30);s0 = linspace(sb, se, 30);% 对有效数据分割[x1 y1 z1] = meshgrid(x1, y1, z1);% 生成网格数据点s1 = zeros(size(x1, 1), size(x1, 2));for i = 1 : size(s1, 1)s1(i, :) = s0;endst = zeros(size(x1, 1), size(x1, 2), size(x1, 3));for i = 1 : size(st, 3)st(:, :, i) = s1;ends1 = st;% 构造第四维数据s1figure;hold on;view(3);slice(x1, y1, z1, s1, x, [], []);这样就做出来所谓的截面图这个是通过slice(x1, y1, z1, s1, x, y, []);来做的,但没有颜色值设置选项;close all;clc;clear;A = [1 2 2 251 3 3 211 4 4 202 5 5 192 6 7 31];x = A(:, 1)';y = A(:, 2)';z = A(:, 3)';s = A(:, 4)';% 对有效数据分割xb = min(x);xe = max(x);yb = min(y);ye = max(y);zb = min(z);ze = max(z);y1 = linspace(yb, ye, 30);z1 = linspace(zb, ze, 30);x1 = ones(size(y1, 1), size(y1, 2)) * x(1);[x1, y1] = meshgrid(x1, y1);z = zeros(length(z1));for i = 1 : size(z, 1)z(i, :) = z1;endsurf(x1, y1, z);% 这个时候产生了对应于x1的网格截面图,下面来定颜色[a, b] = size(z);rgb = ones(a, b);len = length(s)+1;slic = floor(linspace(1, a, len));for i = 1 : length(slic)-1rgb(slic(i):slic(i+1)-1, :) = rgb(slic(i):slic(i+1)-1, :)*s(i);end% 产生颜色值figure;surf(x1, y1, z, rgb);这个是设置了颜色的图。
十节MATLAB绘图ppt课件
%axis([0 10 0 1])
MATLAB绘图
画圆 theta=linspace(0,2*pi); plot(1+0.5*cos(theta),2+0.5*sin(theta)) axis equal %使图形对称
MATLAB绘图
图形注释和可视化提高 1. 使用坐标轴,图形标题,曲线标注,填充
区域和添加文本 2. 改变轴、曲线和文本的属性 3. 使用希腊字母、数学符号、上下标等
MATLAB绘图
例 x=0:0.05:6; plot(x,cos(x),'k',x,1./cosh(x),'k',[4.73 4.73],[-1
1],'k') xlabel('x') ylabel('value of function') title('visualizaton of two intersecting curves') text(4.8,-.5,'x=4.73') text(2.1,.3,'1/cosh(x)') text(1.2,-.4,'cos(x)')
MATLAB绘图
plot中属性设置 x=-pi:pi/10:pi; y=tan(sin(x))-sin(tan(x)); plot(x,y,'-- rs', 'LineWidth',2, … 'MarkerEdgeColor','k', … 'MarkerFaceColor','g', … 'MarkerSize',10)
MATLAB作图教程
2
Matlab 绘图
如何画出 y=sin(x) 在 [0, 2*pi] 上的图像?
3
Matlab 绘图
手工作图
找点: x=0, pi/3, pi/2, 2*pi/3, pi, … 计算函数值: y=sin(0), sin(pi/3), sin(pi/2), 描点:在坐标系中画出这些离散点
…
19
以下标为横坐标,元素值为纵坐标,等价于:
x=[1:length(y)];plot(x,y);
例:>> y=[0,0.48,0.84,1,0.91,6.14];
>> plot(y); >> figure(2); plot([1:length(y)], y)
自己动手
plot(Y): 当 Y 是矩阵时的图形是什么? >> Y=[1 2; 3 5; 6 9]; plot(Y); >> plot(Y’);
25
图形的其他属性
图形标注与坐标控制 有关图形标注函数的调用格式为: title(图形名称) xlabel(x轴说明) ylabel(y轴说明) text(x,y,图形说明) legend(图例1,图例2,…)
26
图形的其他属性ຫໍສະໝຸດ 标题 title(’text’)
例
可以指定文本的属性 title('text', 'Property1', value1, ' Property2', value2, ...)
自己动手
在0≤x≤2区间内,绘制曲线
y=2e-0.5x cos(4πx)
14
【例】在0≤x≤2区间内,绘制曲线
y=2e-0.5x cos(4πx)
四讲Matlab绘图ppt课件精品文档
p l o t (. . ., s t r ) 使用字符串s t r指定的颜
色和线型进行绘图。表1 中列出了s t r可
以取的值。
2019/10/12
4
一、二维图形:表一
点
型
.
点
^
正三角
*
星号
v
倒三角
OO
s
正方形
++
d
菱形
X 乘号
p
五角星
<
左三角
h
六角星
>
右三角
none 无点
2019/10/12
5
2019/10/12
26
三、三维图形
m e s h ( X,Y,Z ) 将矩阵Z中的各个元素作 为矩形网格上的高度,对这些值绘图,
并且将相邻的点连接形成三维网格表面 图。颜色由高度,即Z中的元素指定。
s u r f ( X , Y , Z) 绘制出由坐标(Xi j, Yi j, Zi j)确定的表面图形。如果X和Y分别是长 度为m和n的向量,那么, Z必须为m×n 的矩阵,并且表面是由(Xj, Yi, Zi j)来定 义的。
一、二维图形:表一
线型
颜色
--. : none
实线 m 虚线 b 点划线 c 点线 w 无线 r
品红色 蓝色 灰色 白色 红色
颜色
k
g
绿色 y
黑色 黄色
2019/10/12
6
一、二维图形
1.2彗星图形
c o m e t ( x , y ) 绘制向量y对向量x的彗星 轨线。如果只给出一个向量,则用该向 量对其下标值绘图。
2019/10/12
10
Matlab绘图超级经典
: -. -实线 点线 点划线 虚线 . 点 o 小圆圈 x 叉号 + 加号 • 星号 s 方格 d 菱形
点标记
v 下三角 ^ 上三角 < 左三角 > 右三角 p 五角星 h 六角星 b g r c 蓝色 绿色 红色 青色
颜色
m y k w 棕色 黄色 黑色 白色
x = 0:0.2:2*pi; y = sin(x); plot(x,y,'r-o')
plot(x,y)
线性代数中: 列 × 行 = 矩阵
0 1 2 3 4 5 6 7
plot(X1,Y1,LineSpec,...,Xn,Yn,LineSpec)
按照三个参数Xn, Yn, LineSpec画线,其中LineSpec指 定了线型,点标记和画线的颜色,也可以混合使用三参数 Xn,Yn,LineSpec和二参数Xn,Yn: plot(X1,Y1,X2,Y2,LineSpec,X3,Y3)。 LineSpec的三种属性可以全部指定,也可以只指定其中某一个 或两个,排列顺序任意
plot(x,exp(x),'-s') grid on
semilogx( ) 与 semilogy( )作图比较
x = logspace(-1,2);
semilogx(x,exp(x),'-s') grid on
x = logspace(-1,2);
semilogy(x,exp(x),'-s') grid on
• • • • • • 1、绘制2d图形的基本步骤 2、直角坐标系绘图:plot( ) 3、对数坐标绘图:loglog( ), semilogx( ), ... 4、双y轴绘图:plotyy( ) 5、极坐标系绘图:polar( ) 6、二维绘图函数汇总
案例28使用matlab绘制专业图形——绘制曲线和曲面图
案例28使用MATLAB 绘制专业图形绘制曲线和曲面图案例主要信息提示 ● 案例内容:使用MATLAB 进行专业作图。
● 关键词:MATLAB ,作图,二维作图,三维作图 ● 建议课时:2课时● 适合专业:理工科各专业●光盘中的数字资源:二维曲线绘图M 文件graph_line.m三维曲面绘图M 文件graph_surface.m一、 实验内容实验内容1.绘制曲线图在1个绘图窗口的4个不同子窗口中分别绘制以下曲线: ①在子窗口1中绘制两条二维曲线,分别为:0.510.2cos(4)x y e x π-=和0.522cos()x y e x π-=并显示网格线。
②在子窗口2中绘制两条二维曲线,分别为:0.512x y e -=和2cos(2)y x π=并添加标题、x/y 轴名称、图形说明和图例。
③在子窗口3中绘制一条极坐标曲线,如下:sin()cos()r t t =④在子窗口4中绘制一条极三维螺旋线。
全部4个子窗口绘制效果如图28-1所示。
图28-1曲线绘制效果图实验内容2.绘制曲面图在1个绘图窗口的4个不同子窗口中分别绘制以下曲面:①在子窗口1和子窗口2中以不同着色方式绘制两个球面。
②在子窗口3和子窗口4中以不同视角绘制两个直径相等的圆管相交的图形。
全部4个子窗口绘制效果如图28-2所示。
图28-1曲面绘制效果图二、预备知识2.1 MATLAB绘图功能简介MA TLAB软件提供了丰富的图形表达功能,包括常用的二维图形和三维图形。
其中,各种二维图形近30种,三维图形20多种。
应用MA TLAB除了能作一般的曲线、散点图、条形图等,还能绘制流线图、三维矢量图等工程实用图形。
下面我们介绍一些基本的二维和三维绘图函数。
2.2 二维图形的绘制二维图形是将平面坐标上的数据点连接起来的平面图形。
可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。
二维图形的绘制是其他绘图操作的基础。
2.2.1绘制二维曲线的plot函数在MATLAB中,plot函数是最简单、最基本而且应用最为广泛的线性绘图函数,利用它可以在二维平面上生成线段、曲线和参数方程曲线等的函数图形。
四讲Matlab绘图ppt课件
2024/2/12
8
一、二维图形
h o m e 移动光标到命令窗口的左上角。
hold on 保持当前图形。允许在当前图 形状态下,使用同样的缩放比例加入另 一个图形。
hold off 释放图形窗口,这样下一个图 形将称为当前图形。这是缺省状态。
h o l d 在hold on和hold off之间 进行切换。
2024/2/12
9
一、二维图形
subplot(m,n,p)将
图形窗口分割成m行n列,并设置p所指定
的子窗口为当前窗口。子窗口按行由左
至右,由上至下进行编号。这一命令在 M AT L A B的当前版本中也被写作s u b p l o t ( m n p )。
s u b p l o t 设置图形窗口为缺省模 式,即单窗口模式。等价于s u b p l o t ( 1 , 1 , 1 )。
2024/2/12
24
三、三维图形
•p l o t 3 ( x 1 , y 1 , z 1 , str1,x2,y2,z2,s t r 2 ,. . .)用字符串s t r 1确定的 线型和颜色对x 1 , y 1 , z 1绘图,用字符 串s t r 2确定的线型和颜色对x2, y2, z2 绘图. . .。如果省略s t r 1 , s t r 2,. . ., M AT L A B将自动选择线型和颜色。
2024/2/12
25
三、三维图形
m e s h ( X,Y,Z ) 将矩阵Z中的各个
元素作为矩形网格上的高度,对这些值 绘图,并且将相邻的点连接形成三维网 格表面图。颜色由高度,即Z中的元素指 定。
s u r f ( X , Y , Z) 绘制出由坐标
matlab作图(子图+图像重叠显示)
matlab作图(⼦图+图像重叠显⽰)1、matlab中如何在⼀个图上显⽰多个图像,例如同时显⽰2*2个图像,则需使⽤subplot(m,n,p)命令,其中m和n表⽰m⾏n列,p表⽰第⼏个图像例:在⼀个图上显⽰函数 y = exp(-0.5*x)*sin(20*x) y = exp(-1.2*x)*sin(20*x) y = exp(-2*x)*sin(20*x) y = exp(-2.5*x)*sin(20*x)代码为:x = [0:0.01:5];y = exp(-0.5*x).*sin(20*x);subplot(2,2,1);plot(x,y),xlabel('x'),ylabel('exp(-0.5*x).*sin(20*x)'),axis([0 5 -1 1]);y = exp(-1.2*x).*sin(20*x);subplot(2,2,2);plot(x,y),xlabel('x'),ylabel('exp(-1.2*x).*sin(20*x)'),axis([0 5 -1 1]);y = exp(-2*x).*sin(20*x);subplot(2,2,3);plot(x,y),xlabel('x'),ylabel('exp(-2*x).*sin(20*x)'),axis([0 5 -1 1]);y = exp(-2.5*x).*sin(20*x);subplot(2,2,4);plot(x,y),xlabel('x'),ylabel('exp(-2.5*x).*sin(20*x)'),axis([0 5 -1 1]);以上代码也可以使⽤循环语句来实现。
2、图像重叠显⽰,可使⽤hold on命令实现,另外可以使⽤linspace(a,b)或linspace(a,b,n)命令实现在a到b之间均匀地取出100个点或n个点。
matlab画图大全[资料]
matlab绘图大全Matlab绘图系列之高级绘图一、目录1.彗星图二维彗星图三维彗星图2.帧动画3.程序动画4.色图变换5.Voronoi图和三角剖分Voronoi图三角剖分6.四面体7.彩带图彩带图三维流彩带图8.伪彩图9.切片图切片图切片轮廓线图10.轮廓图显示轮廓线显示围裙瀑布效果带光照模式的阴影图11.函数绘图轮廓线、网格图、曲面图、轮廓网格图轮廓曲面图、二维曲线、极坐标曲线图、自定义函数12.三维图形控制视点灯光效果色彩控制二、图形示例1.彗星图二维彗星图t=0:.01:2*pi;x=cos(2*t).*(cos(t).^2);y=sin(2*t).*(sin(t).^2);comet(x,y);title('二维彗星轨迹图')hold onplot(x,y)三维彗星图a=12;b=9;T0=2*pi;%T0是轨道的周期T=5*T0;dt=pi/100;t=[0:dt:T]';f=sqrt(a^2-b^2);%地球与另一焦点的距离th=12.5*pi/180;%未经轨道与x-y平面的倾角E=exp(-t/20);%轨道收缩率x=E.*(a*cos(t)-f);y=E.*(b*cos(th)*sin(t));z=E.*(b*sin(th)*sin(t));plot3(x,y,z,'g')%画全程轨线hold on,sphere(20);%画地球axis offtitle('卫星返回地球示例')x1=-18*T0;x2=6*T0;y1=-12*T0;y2=12*T0;z1=-6*T0;z2=6*T0;axis([x1 x2 y1 y2 z1 z2])% axis([-15 10 -15 10 -10 10])axis equalcomet3(x,y,z,0.02);%画运动轨线hold off2.帧动画Z=peaks;surf(Z)%绘制网格表面图axis tightset(gca,'nextplot','replacechildren');%设定axis覆盖重画模式title('帧动画播放示例')for j=1:20surf(sin(2*pi*j/20)*Z,Z)%重新绘制网格表面图,这里后面一个Z当成了颜色矩阵F(j)=getframe;%创建帧endmovie(F,20)%播放动画20次3.程序动画t=0:pi/50:10*pii=1;h=plot3(sin(t(i)),cos(t(i)),t(i),'*','erasemode','none');%设定擦除模式grid onaxis([-2 2 -2 2 -1 10*pi])title('程序动画示例')for i=2:length(t)set(h,'xdata',sin(t(i)),'ydata',cos(t(i)),'zdata',t(i));drawnowpause(0.01)end4.色图变换load spineimage(X)colormap coolspinmap(10)5.Voronoi图和三角剖分Voronoi图rand('state',5)x=rand(1,10);y=rand(1,10);subplot(131)voronoi(x,y);%绘制voronoi图形axis equalaxis([-0.2 1.6 -0.5 2.5])subplot(132)[vx,vy]=voronoi(x,y);plot(x,y,'r+',vx,vy,'b-');%应用返回值绘制axis equalaxis([-0.2 1.6 -0.5 2.5])subplot(133)rand('state',5);x=rand(10,2);[v,c]=voronoin(x);%返回值v参数维voronoi顶点矩阵,返回值c 参数为voronoi元胞数组for i=1:length(c)if all(c{i}~=1)patch(v(c{i},1),v(c{i},2),i);%应用色图iendendaxis equalaxis([-0.2 1.6 -0.5 2.5])box on三角剖分[x,y]=meshgrid(1:15,1:15);tri=delaunay(x,y);z=peaks(15);trimesh(tri,x,y,z)6.四面体d=[-1 1];[x,y,z]=meshgrid(d,d,d);%定义一个立方体x=[x(:);0];y=[y(:);0];z=[z(:);0];%[x,y,z]分别为加上中心的立方体顶点X=[x(:) y(:) z(:)];Tes=delaunayn(X);%返回m×n的数组值tetramesh(Tes,X);%绘制四面体图camorbit(20,0);%旋转摄像目标位置7.彩带图彩带图[x,y]=meshgrid(-3:.5:3,-3:.1:3);z=peaks(x,y);ribbon(y,z)三维流彩带图load wind%打开保存的数据lims=[100.64 116.67 17.25 28.75 -0.02 6.86];%定义坐标轴范围[x,y,z,u,v,w]=subvolume(x,y,z,u,v,w,lims);%lims来定义数据子集[sx sy sz]=meshgrid(110,20:5:30,1:5);%定义网格点verts=stream3(x,y,z,u,v,w,sx,sy,sz,.5);%计算彩带顶点cav=curl(x,y,z,u,v,w);%计算卷曲角速度wind_speed=sqrt(u.^2+v.^2+w.^2);%计算流速h=streamribbon(verts,x,y,z,cav,wind_speed,2);%绘制流彩带图view(3)8.伪彩图n=6%定义轮数r=(0:n)'/n;%定义轮的半径theta=pi*(-n:n)/n;%定义轮的扇区角X=r*cos(theta);Y=r*sin(theta);%定义网格顶点C=r*cos(2*theta);%定义色图pcolor(X,Y,C)%绘制伪彩图axis equal tight9.切片图切片图[x,y,z] = meshgrid(-2:.2:2,-2:.25:2,-2:.16:2);v = x.*exp(-x.^2-y.^2-z.^2);xslice = [-1.2,.8,2]; yslice = 2; zslice = [-2,0];slice(x,y,z,v,xslice,yslice,zslice)colormap hsv切片轮廓线图[x y z v]=flow;%打开水流数据h=contourslice(x,y,z,v,[1:9],[],[0],linspace(-8,2,10));%切片轮廓线view([-12 30])10.轮廓图显示轮廓线[x,y,z]=peaks;subplot(1,2,1)meshc(x,y,z);%同时画出网格图与轮廓线title('meshc 网格图与轮廓线')axis([-inf inf -inf inf -inf inf]);subplot(1,2,2)surfc(x,y,z);%同时画出曲面图与轮廓线title('surfc 曲面图与轮廓线')axis([-inf inf -inf inf -inf inf]);显示围裙[x y z]=peaks;meshz(x,y,z);瀑布效果[X,Y,Z]=peaks(30);waterfall(X,Y,Z)带光照模式的阴影图[x,y]=meshgrid(-3:1/8:3);z=peaks(x,y);surfl(x,y,z);shading interp%着色处理colormap(gray);%灰度处理axis([-3 3 -3 3 -8 8])11.函数绘图轮廓线、网格图、曲面图、轮廓网格图%图1绘制轮廓线、网格图、曲面图、轮廓网格图subplot(221)f=['3*(1-x)^2*exp(-(x^2)-(y+1)^2)-10*(x/5-x^3-y^5)*exp(-x^2-y^2)-1/3*exp(-(x+1)^2-y^2)'];%定义双变量x、y的函数式ezcontour(f,[-3,3],49)%x、y为[-3 3],网格为49×49subplot(222)ezmesh('sqrt(x^2+y^2)');subplot(223)ezsurf('real(atan(x+i*y))')%经过滤波,如果相同数据surf绘图没有滤波subplot(224)ezmeshc('y/(1+x^2+y^2)',[-5,5,-2*pi,2*pi])%x、y的数值范围分别为[-5 5]、[-2*pi 2*pi]轮廓曲面图、二维曲线、极坐标曲线图、自定义函数%图2绘制轮廓曲面图、二维曲线、极坐标曲线图、自定义函数figure(2)subplot(221)ezsurfc('sin(u)*sin(v)')subplot(222)ezplot('x^2-y^4');subplot(223)ezpolar('1+cos(t)')subplot(224)fplot('myfun',[-20 20])function Y=myfun(x)Y(:,1)=200*sin(x(:))./x(:);Y(:,2)=x(:).^2;三维曲线图%绘制三维曲线图figure(3)ezplot3('sin(t)','cos(t)','t',[0,6*pi])12.三维图形控制视点View图形旋转subplot(121)surf(peaks);title('旋转前图形');subplot(122)h=surf(peaks);rotate(h,[1 0 1],180)title('旋转后图形');灯光效果%灯光效果(1)camlight(2)light(3)lightangle(4)lighting(5)materialsphere;camlight色彩控制%色彩控制(1)缺省设置colordef、whitebg(2)色图colormap(3)浓淡处理shadingload flujetimage(X)colormap(jet)subplot(131)sphere(16)axis squareshading flattitle('Flat Shading')subplot(132)sphere(16)axis squareshading facetedtitle('Faceted Shading') subplot(133)sphere(16)axis squareshading interptitle('Interpolated Shading')。
实验作业2 MATLAB作图
实验作业2 MATLAB作图1、用plot,fplot 绘制函数y=cos(tan( x))的图形。
解:代码如下:x=linspace(-0.5,0.5,30);y=cos(tan(pi*x));plot(x,y)结果:fplot('[cos(tan(pi*x))]',[-0.5,0.5])结果:注意事项: fplot('[cos(tan(pi*x))]',[-0.5,0.5])不能写成fplot('[cos(tan(pi*x))]',(-0.5,0.5))否则是错误程序。
2. 用ezplot绘制函数exy-sin(x+y)=0 在[-3, 3]上的图形。
解:代码如下:ezplot('exp(x*y)-sin(x+y)=0',[-3,3])3.用matlab以动画的方式绘制出摆线x=a(t-sint) y=a(1-cost) (a自己赋值)的渐屈线clear;clc;close;a=1;syms tx=a*(t-sin(t));y=a*(1-cos(t));ezplot(x,y,[0,2*pi]),grid on ;hold on;dy=diff(y)/diff(x);dyy=diff(dy)/diff(x);xx=x-(1+dy^2)*dy/dyy;%渐屈线的坐标yy=y+(1+dy^2)/dyy;M=50;t=0;xxx=subs(xx);yyy=subs(yy);H1=plot(xxx,yyy,'r');hold on;grid on ;axis([0,7,-2.5,2.5]);x1=subs(x);y1=subs(y);H2=plot([x1,xxx],[y1,yyy],'k--');H3=plot(x1,y1,'ko');H4=plot(xxx,yyy,'ro');tt=linspace(0,2*pi,M);for i=1:Mpause(0.2);t=tt(1:i);xxx=subs(xx);yyy=subs(yy);x1=subs(x);y1=subs(y);set(H1,'xdata',xxx,'ydata',yyy);set(H2,'xdata',[x1(i),xxx(i)],'ydata',[y1(i),yyy(i)]);set(H3,'xdata',x1(i),'ydata',y1(i));set(H4,'xdata',xxx(i),'ydata',yyy(i));end绘制函数⎩⎨⎧-=-=)cos 1()sin (t a y t t a x 在]2,0[π∈t 上的图形。
matlab 函数作图
03 函数作图1 平面图形(1)竖直条形图调用格式为:bar(x,y)(2)用描点法绘制函数y f ( x) 随x 从a 到b 间的图形.调用格式为:x=a:h:b ;y=f(x) ;plot(x,y)(3)在同一坐标系下绘制多个函数图形.调用格式为:x=a:h:b ;plot(x,y1,x,y2,…)(4)绘制函数y=f(x)随x 从a 到b 间的图形.调用格式为:explo t(‘f(x)’, [a,b])(5)x 从xa 到xb和y 从ya到yb间隐函数 f ( x, y) 0 的图形.调用格式为:ezplo t(‘x’,’y’,[xa, x b , y a , y b ])(6)绘制t 从ta 到tb间参数方程x x(t ),y y(t )的函数图形.调用格式为:ezplo t(‘x’,’y’,[ta, t b ])(7)在一坐标系下可以绘制一个或多个显函数图形,对变化剧烈的函数,用此命令来进行较精确的绘画.调用格式为:fplot(’fun(x)’,[a,b])fplo t (‘[f1(x),f2(x),…]’,[a,b])其中fun(x)可以是自定义函数,[f1(x),f2(x),…]是函数组.(8)绘制散点图.调用格式为:scatter(x,y)2 空间图形(1)空间曲线.调用格式为:plot3(x,y,z)(2)产生一个以向量x 为行,向量y 为列的矩阵.调用格式为:meshgrid(x,y)(3)空间曲面.调用格式为:surf(x,y,z)(4)网格曲面.调用格式为:mesh(x,y,z)例 1 一次考试成绩0~10 分有0 人,10~20 分有0 人,20~30 分1 人,30~40 分有1 人,50~60 分有2 人,60~70 分有18 人,70~80 分有20 人,80~90 分有9 人,90~100 分有6 人.绘出成绩分析竖直条形图.【matlab 命令】>> x=0:10:90;>> y=[0,0,1,1,0,2,18,20,9,6];>> bar(x,y)【输出结果】20002图1例1输出图像例 2 绘制显函数图形.x(1)设 y 1x 3 2x , y2000 cos2sin x请分别作出这两个函数在区间 x[20,40] 的图像,然后将它们的图像在一个平面直角坐标系中,并判断方程 y 1x 3 2 x 1500cos x2sin x 有几个实数解.(2)在 x[0,4] 上画出分段函数方法一:【matlab 命令】>> x=-20:0.1:40;>> y1=x.^3-35*x.^2+100*x+1500; >> y2=2000*(cos(x/2)-sin(x)); >> figure(1)>> plot(x,y1,'b-'); >> figure(2) >> plot(x,y2,'k');f ( x )32 x 2x 20 x 2 x 2的图像>> figure(3)>> plot(x,y1,'b-',x,y2,'k')【输出结果】图2例2(1)函数y1图3 例 2(1)函数 y 2 输出图像图4例 2(1)函数 y 1 和 y 2 输出图像 从图中知:有 7 个交点,也就是有 7 个实数根.说明:绘制图形着色时,g 表示绿色,r 表示红色,b 表示蓝色,k 表示黑色.方法二:【matlab 命令2】%自定义函数M文件fx1 function y1=fx1(x)y1=x^3-35*x.^2+100*x+1500%自定义函数M文件fx2 function y2=fx2(x)y2=2000*(cos(x/2)-sin(x));Matlab命令窗口输入以下命令: >> figure(1)>> fplot('fx1(x)',[-20,40]); >> figure(2)>> fplot('fx2(x)',[-20,40]); >> figure(3)>> fplot('[fx1(x) , fx2(x)] ', [-20,40]); 【输出结果2】结果同上.【matlab 命令3】>> x=0:0.01:2;>> y=(2*x-x.^2).^(1/3);>> plot(x,y,'k','linewidth',2)>> hold on>> x=2:0.01:4;>> y=x-2;>> plot(x,y,'k','linewidth',2)【输出结果3】图5例2(2)函数f(x)的输出图像例3绘制隐函数和参数方程所确定函数的图形.(1)在x [3,3] 上画隐函数x 2 2 9 的图像.(2)在t [0,2] 上画参数方程x cos3 t ,y sin 3 t 的图像.【matlab 命令1】>> ezplot('x^2+y^2-9',[-3,3])>> axis equal【输出结果1】图6例3(1)输出图像说明:axis on 显示坐标轴,axis off 取消坐标轴,grid on 表示加网格线,grid off 表示不加网格线,clf 清楚图形窗口中的图形.也可以通过编辑图像的方法改变或增加设置,比如在图形窗口中,菜单栏Tools中鼠标选中Edit-Plot,可改变图像的颜色.【matlab 命令2】>> ezplot('cos(t)^3','sin(t)^3',[0,2*pi])【输出结果2】图7例3(2)输出图像例4将图4,5,6,7在同一个图形窗口表现出来.【matlab 命令】clfsubplot(2,2,1)x=-20:0.1:40;y1=x.^3-35*x.^2+100*x+1500;y2=2000*(cos(x/2)-sin(x));plot(x,y1,'b-',x,y2,'k');subplot(2,2,2)x=0:0.01:2;y=(2*x-x.^2).^(1/3);plot(x,y) holdon x=2:0.01:4;y=x-2;plot(x,y)subplot(2,2,3)ezplot('x^2+y^2-9',[-3,3])axis equal subplot(2,2,4)ezplot('cos(t)^3','sin(t)^3',[0,2*pi])【输出结果】图8 例4输出图像例5已知平面内8个散点的坐标(1,15,2,20(3,27(4,36(5,49,(6,65(7,87(8,117,在直角坐标系中绘制点图.【matlab 命令】 clf x=1:8; y=[15.3,20.5,27.4,36.6,49.1,65.6,87.8,117.6]; scatter(x,y,'ko') 【输出结果】图9例6 在区间[0,10] 上画出参数曲线x sin t, y cos t, z t .【matlab 命令】clft=0:pi/50:10*pi;plot3(sin(t),cos(t),t)【输出结果】图10例7画函数Z ( X Y) 2 的图形.【matlab 命令】clfx=-3:0.1:3; y=1:0.1:5;[X,Y]=meshgrid(x,y);Z=(X+Y).^2;surf(X,Y,Z)shading flat【输出结果】图11例8画出马鞍曲面Z X 2 Y2 在不同视角的网格图.【matlab 命令】clfx=-3:0.1:3; y=1:0.1:5;[X,Y]=meshgrid(x,y);Z=X.^2-Y.^2;mesh(X,Y,Z)【输出结果】图123 习题1.某城市一年12个月的日平均气温(单位: 0C )分别为:-10,-6,5,10,20,25,30,24,22,19,10,6,试画出条形图. 2.作出函数 f ( x )cos(e x ) e x / 2) 在区间 x [4,4] 的图形3.作隐函数 sin( xy ) 0 在 [6,6] 内的图形.cos x 2 x 2 4.已知分段函数 y x x 1 ,作出 15 x 15 的函数图形. 2 sin( x 1) 1x 15.在同一直角坐标系中,作出函数 y5 的图形和函数 x 3 的图形.6.已知sin( x 2 2 )7.绘制空间图形:(墨西哥帽子).x 2 2。
matlab中绘制折线图、绘制条形图(柱形图)的简单方法
matlab中绘制折线图、绘制条形图(柱形图)的简单⽅法实验做完后通常绘制⼀些可视化图形来帮助我们更好的展⽰结果,那么最简单的是使⽤excel直接绘制,但是excel绘制的图形⽆法单独保存成图⽚,只能复制粘贴到word⽂档中,这就造成了图形的分辨率不⾼,在⽂档⾥⾯放⼤后会变得模糊。
针对这种情况,我们可以使⽤其他⼯具绘图:⽐如matlab,Python,⼀些专⽤绘图软件origin等。
因此这篇随笔⽤来记录我对我的试验结果绘制的两种图形:条形图(柱形图)、折线图。
图形:条形图(柱形图)、折线图;绘制语⾔:matlab条形图:1 %%2 clear;close all;clear all;3 % 添加绘图所需数据4 Acc = xlsread('E:\2研究⽣阶段\1研究⼯作汇总\2ReasearchWork\05⼩论⽂\⽂章⽤图\figure\绘图(⾃⼰使⽤MATLAB绘制LSVT 的3D图代码)\figure_other\matlab\PARAMETERdATA.xlsx','Sheet1','B32:D32');5 Pre = xlsread('E:\2研究⽣阶段\1研究⼯作汇总\2ReasearchWork\05⼩论⽂\⽂章⽤图\figure\绘图(⾃⼰使⽤MATLAB绘制LSVT 的3D图代码)\figure_other\matlab\PARAMETERdATA.xlsx','Sheet1','B33:D33');6 Rec = xlsread('E:\2研究⽣阶段\1研究⼯作汇总\2ReasearchWork\05⼩论⽂\⽂章⽤图\figure\绘图(⾃⼰使⽤MATLAB绘制LSVT 的3D图代码)\figure_other\matlab\PARAMETERdATA.xlsx','Sheet1','B34:D34');7 G_mean = xlsread('E:\2研究⽣阶段\1研究⼯作汇总\2ReasearchWork\05⼩论⽂\⽂章⽤图\figure\绘图(⾃⼰使⽤MATLAB绘制LSVT 的3D图代码)\figure_other\matlab\PARAMETERdATA.xlsx','Sheet1','B35:D35');8 F_score = xlsread('E:\2研究⽣阶段\1研究⼯作汇总\2ReasearchWork\05⼩论⽂\⽂章⽤图\figure\绘图(⾃⼰使⽤MATLAB绘制LSVT 的3D图代码)\figure_other\matlab\PARAMETERdATA.xlsx', 'Sheet1','B36:D36'); 910 result = [Acc;Pre;Rec ;G_mean;F_score];11 % 条形图绘制12 bar(result,0.6);13 % 设置当前图形X轴标签14 set(gca,'XTickLabel',{'ACC','Pre ','Rec','G-mean','F-score'});15 % 设置轴标题16 xlabel('Different instance space')17 ylabel('Acc(%)');18 % 设置图形标题19 title('Acc on LSVT')20 % 给图形加图注21 legend('Original space','Deep space1','Deep space2')22 % 添加⽹格线23 grid on折线图(待补充)。
常用Matlab作图命令
常用Matlab作图命令1.概率统计作图1.1绘出正态分布的密度函数曲线正态分布密度曲线x=-5:0.1:5;y=normpdf(x,0,1);z=normpdf(x,0,2);plot(x,y,x,z) gtext('N(0,1)') gtext('N(0,2)')title('正态分布密度曲线')1.2绘出t-分布的密度函数曲线,并与标准正态密度曲线比较x概率密度px=-5:0.1:5; y=tpdf(x,30); z=normpdf(x,0,1); plot(x,y,'k:',x,z,'k-') xlabel('\itx'); ylabel('概率密度\itp')legend('t 分布', '标准正态密度') difference=tpdf(x,30)-normpdf(x,0,1)1.3绘制开方分布密度函数在n 分别等于1、5、15的图x=0:1:30;y1=chi2pdf(x,1); plot(x,y1,':') hold ony2=chi2pdf(x,5);plot(x,y2,'+') y3=chi2pdf(x,15);plot(x,y3,'O') Axis([0,30,0,0.2])1.4计算自由度是50,10的F-分布的0.9的分位数,并给出概率与分位数关系的图形x=finv(0.9,50,10) x = 2.1171 p=fcdf(x,50,10) p = 0.9000 t=0:0.1:4; y=fpdf(x,50,10); z=fpdf(t,50,10); plot(t,z,[x,x],[0,y]) text(x,0,'2.1171') gtext('p=0.9')title('概率与分位数的关系')1.5 经验累积分布函数图形X=normrnd (0,1,50,1); [h,stats]=cdfplot(X)y = evrnd(0,3,100,1); cdfplot(y) hold on x = -20:0.1:10; f = evcdf(x,0,3); plot(x,f,'m')legend('Empirical','Theoretical','Location','NW')概率与分位数的关系1.6 绘制正态分布概率图形X=normrnd(0,1,50,1); normplot(X)1.7 绘制威布尔(Weibull)概率图形%绘制威布尔(Weibull)概率图形的目的是用图解法估计来自威布尔分布的数据X ,如果X 是威布 %尔分布数据,其图形是直线的,否则图形中可能产生弯曲。
Matlab绘图教程大量实例ppt
plot函数的基本调用格式为: plot(x,y) 其中x和y为长度相同的向量,分别用于存储x坐标和y坐标 数据。 例1 在0≤x≤2区间内,绘制曲线 y=2e-0.5xcos(4πx) 程序如下: x=0:pi/100:2*pi; y=2*exp(-0.5*x).*cos(4*pi*x); plot(x,y)
例3 分析下列程序绘制的曲线。 x1=linspace(0,2*pi,100); x2=linspace(0,3*pi,100); x3=linspace(0,4*pi,100); y1=sin(x1); y2=1+sin(x2); y3=2+sin(x3); x=[x1;x2;x3]'; y=[y1;y2;y3]'; plot(x,y,x1,y1-1)
例2 绘制曲线。 程序如下: t=0:0.1:2*pi; x=t.*sin(3*t); y=t.*sin(t).*sin(t); plot(x,y);
plot函数最简单的调用格式是只包含一个输入参数: plot(x) 在这种情况下,当x是实向量时,以该向量元素的下 标为横坐标,元素值为纵坐标画出一条连续曲线, 这实际上是绘制折线图。
ห้องสมุดไป่ตู้ 设置曲线样式
MATLAB提供了一些绘图选项,用于确定所绘曲线 的线型、颜色和数据点标记符号,它们可以组合 使用。例如,“b-.”表示蓝色点划线,“y:d”表示 黄色虚线并用菱形符标记数据点。当选项省略时, MATLAB规定,线型一律用实线,颜色将根据曲 线的先后顺序依次。 要设置曲线样式可以在plot函数中加绘图选项,其 调用格式为: plot(x1,y1,选项1,x2,y2,选项2,…,xn,yn,选项n)
3.具有两个纵坐标标度的图形 在MATLAB中,如果需要绘制出具有不同纵坐标标 度的两个图形,可以使用plotyy绘图函数。调用 格式为: plotyy(x1,y1,x2,y2) 其中x1,y1对应一条曲线,x2,y2对应另一条曲线。横 坐标的标度相同,纵坐标有两个,左纵坐标用于 x1,y1数据对,右纵坐标用于x2,y2数据对。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二维图形的绘制二维图形是将平面坐标上的数据点连接起来的平面图形。
可以采用不同的坐标系,出直角坐标系外,还可以采用对数坐标系、极坐标。
数据点可以用向量或矩阵形式给出,类型可以是实型或复型。
二维图形输出,利用MATLAB勺二维绘图函数可以很容易作出需要的各种图形。
plot 函用于绘制直角坐标的二维曲线。
使用方plot(x,y,linespeci),plot(x,y) 先描出点(x(i) , y(i)),然后用直线依次相连,其中参数linespeci指明了线条的类型,标记符号和画线用的颜色。
lot是绘制二维曲线的基本命令,但在使用此函数之前,我们需先定义曲线上每一点的x 及y坐标若要在同一个画面上画出多条曲线,只需将坐标对依次放入plot函数即可。
以下各例题中的程序都是在MATLAB®辑器中函数图象的绘制:先是简单的一次函数图像的绘制;简单的一次函数在数学图像绘制中是比较简单的,在MATLA语言中用plot函数就能实现。
问题1,简单的一次函数y=3x的函数图像。
程序如下:x=0:1:10; %生成一个从0到10的步长为1的行向量y=3*x; %变量y的表达式plot(x,y) %生成二维图形运行结果如图1所示。
图1 y=3x 的图形有时在数学中我们要把三角函数图像同时绘制出来,对它们的周期,极值等函数性质进行比较,在数学中我们自己很难解决,但是matlab中的图形窗口分割函数一subplot就能够实现。
其调用格式为:subplot (m,n,p )。
下面我们就用matlab 中的subplot函数进行窗口风隔,绘制同一变量的各种三角函数图象。
问题2,在一个图形窗口中以子图形式同时绘制正弦,余弦,正切,余切曲线。
程序如下:x=li nspace(0,2*pi,600; %x的取值范围及步长y=sin(x); %正弦函数的值给yz=cos(x); %余弦函数的值赋给zt=sin(x)./(cos(x)+eps); %正切函数赋变量tct=cos(x)./(sin(x)+eps); %与其函数赋变量ctsubplot(2,2,1); %选择2x2个区中的1号区stairs(x,y); %生成x与x的阶梯图title( 'si n(x)-1' ); %給正弦函数添加标题axis([0,2*pi,-1,1]); %设置坐标subplot(2,1,2); %选择2x1个区中的1号区stem(x,y); %生成x与y的杆形图title( 'si n(x)-2)' ) J%给正弦函数添加标题axis([0,2*pi,-1,1]); %设置坐标subplot(4,4,3); %选择4x4个区中的3号区plot(x,y); % 产生x与z的二维曲线title( 'cos(x)' ); %给余弦函数图象添加图标axis([0,2*pi,-1,1]); %设置坐标subplot(4,4,4); %选择4x4中的4号区plot(x,z); %产生x与z的二维曲线title( 'cos(x)' ); %给余弦函数图象添加图标axis([0,2*pi,-1,1]); %设置坐标subplot(4,4,7); %选择4x4中的7号区plot(x,t) ;% 产生x与t的二维曲线title( 'tan ge nt(x)' ); %给正切函数图象添加图标axis([0,2*pi,-40,40]); %设置坐标subplot(4,4,8); %选择4x4中的8号区plot(x,ct); %产生x与ct的二维曲线title( 'cota ngen t(x)' ); %給余切函数图象添加图标axis([0,2*pi,-40,40]); %设置坐标运行图像如图2所示□12 3 4 5 6图2 正弦余弦正切余切函数二维图像简单的指数函数,三角函数,幕函数等虽然麻烦,但是都用手工能够绘制出来。
但是超越函数图形手工几乎是绘不出来的,matlab强大的功能只要简单的几句程序就能解决这一冋题。
问题3:绘制曲线有y 0.5x sin2 x的函数图形。
程序如下:x=0:pi/100:2*pi;y=2*exp(-0.5*x).*si n(2*pi*x); Plot(x,y)运行结果如图3所示。
图3 曲线y=t 「、丄二取.以上是用matlable 在一个窗口中绘制一个图像,这个不是很难,但是在同 一窗口中同时绘制出以上三种图像是相当难的, 更重要的是在同一窗口中同时绘 制几个图像时,必须要给图像加以说明,要让图像很明了的显示出来,让人一眼 就能分辨出那个函数对应的是哪一个图像。
Matlab 强大的功能就能很容易的实 现,matlab 中用plot 函数绘制二维图像时用plot (x,y, ' k.')这种形式就可 以给不同函数图形设置不同的线型,不同的颜色。
还可以用 lege nd 函数给图像 加图例,用xlabel 和ylabel 函数来给图像的坐标轴见坐标说明。
在同一窗同时绘制一次函数图象,二次函数图象和超越函数的图象,图像并 做一比较。
问题4,在[-3,3]范围作出函数y x 2, y 10x x sin8x , y 3x 的图形。
程序如下:%函数y 的表达式%生成x 与y 的二维图形,线性为实线,颜色为黑色 %保持图形 %生成一个从-3到1步长为0.1的行向量 %函数y 的表达式%生成x 与y 的二维图形,线性为虚线,颜色为黑色 %保持图形%生成一个从-3到1步长为0.1的行向量 %函数y 的表达式%生成x 与y 的二维图形,线性为虚线,颜色为黑色 %保持图形,'y=xA2' , 'y=3x' ) %加图例%生成一个始数行向量%函数y 的表达式 %生成二维图形x=0:0.001:2*pi; %生成一个从0到2":步长为0.001 的行向量y=10.*exp(-x).*si n(8*x); plot(x,y,'k-')hold on;x=-3:0.1:1;y=x.A2;plot(x,y,'k.')hold on; x=1:0.1:3;y=3*x;plot(x,y, 'k.')hold on ;lege nd( 'y=10e A [-x]si n8x'xlabel( '\itx' ); %乂轴坐标说明ylabel( '\ity' ); %y 轴坐标说明ti tle( 'Is Limit Exist ing When x=1?' ) % 图像添加标题运行结果如图4所示。
图4 同一窗口中的多个函数图形在数学课程中我们可以用matlab明确解决分段函数问题如:假如我们要解决当x=28时要求这个分段函数相对应的解。
问题5求分段函数解决这个问题的程序如下:x=28;for x=-10:5if x<-1y=0;elseif x>=-1&x<0y=-3*x.A2+x;elseif x>=0& x<piy=si n( x)+x;else%输入x的值为28%x是从-10到5变化,步长为1%判断条件x的值%符合第一个条件时为0%不满足的话判断其他条件%得到相应值% 另外的条件%对应的值另外的条件y=pi;end%y的值%结束条件语句endy结士果是. 结果疋.y = 3.1416%结束for循环%输岀y的值除此之外,我们还可以解决分段的一阶常微分函数分方程,。
例如,已知一阶常微其中u 的初值为u(0)=0,求t>=0时的解。
画出图像,并求u 的极大值 程序如下:f un=i nli ne(['((13-u)/18-(si n(10*t/pi)>0)*','1.18*s in (10*t/pi)-u/6 .7)/0.047'],'t','u'); [t,u]=ode45(fu n,[0,10],[0]); plot(t,u)运行结果如图5所示。
%调用函数%t 和u 构成向量绘制t 和u 关系曲线。
当 t>=0时u图5画出这个图时,我们可以轻而 的极大值,我们可以在图上读出, 通过这样的程序,我们可以很, 判断。
另外我们可以求解分段函数的积分 段函数的图形问题。
上面我们讨论了用MATLAB©言绘制分段函数的问题, 罢了。
下面我们用它来绘制一个更有意思的分段函数, 语言来做一些有意思的图形,用来增加我们学习的乐趣。
问题6,形状如囧字的图像绘制,其程序如下: x=0:0.001:2*pi;%x 的取值范围及步长 c=0.1; %常数c 的值 勺解出题目所提 经行复杂的计 而我们不再去麻烦的 F 面我们来用它解决分 上面仅仅是冰山一角 这样,我们可以用MATLAB y=5./cos(x); y(abs(x-pi/2)<c | abs(x-3*pi/2)<c)=NaN; plot(x,y);运行结果如图6所示:%y 的值 %函数的条件极其取值 %绘制函数图像这个函数图形意思吧,这不但是一个函数图形,而且还是我们的一个汉字的样子一囧 字。
这也正是这门学科吸引人之处, 这样我们不仅学到了知识而且还增加了不少的兴趣。
以上是对二维图像的绘制,下面我们来讨论用隐函数图像的绘制:如果给定了函数 matlab 绘制三角函数和指数函数。
显式的表达式,可以先设置自变量向量,然后根plot 函数绘制出图形。
但如果函数用隐函数形式给出, Matlab 提供了 ezplot 函数绘制隐函数图形,下面是隐函数,[0,1]);axis equal %在区间 0<x<1 和 0<y<1 绘制%分区,选择1x3中的2号区,[-3,3])%在区间-3<x<3和-3<y<3的区间绘制图%分区,选择1x3中的3号区 ,'sin(3*t)*sin(t)',[0,pi])%在区间0<x <2和0<y<2 _的区间绘制图像运行图形如图7所示。
图6形状似囧字的分段函数据表达式计算出函数向量,从而用 则很难用上述方法绘制出图形。
图像的绘制。
例如绘制隐函数y 35xy1 0的图形, 5x 参数方程x sin 3t cost ” 的sin 3tsi nt图形。
程序如下:subplot(1,3,1); ezplot( 'cos(ta n( pi*x))' subplot(1,3,2);ezplot( 'x A 3+y A 3-5*x*y+1/5'像subplot(1,3,3); ezplot( 'si n(3*t)*cos(t)'%选择1x3中的1号区图7 隐函数图形有时数学中的有些函数用极坐标来处理更简单, matlab 提供的 专门用来绘制极坐标图形,其调用格式为polar (thera , rho ,选项) 为极坐标极角,rho 为极坐标矢径,选项的内容与 plot 相似。