matlab中如何在指定一点画一个填充颜色的小圆 plot(1,1,'r.','markersize',50)
二维作图 绘图命令plot绘制x-y坐标图;loglog命令绘制对数坐标图;semilogx和semilogy命令绘制半对数坐标图;polor命令绘制极坐标图.
基本形式 如果y是一个向量,那么plot(y)绘制一个y中元素的线性图.假设我们希望画出
y=[0., 0.48, 0.84, 1., 0.91, 6.14 ] 则用命令:plot(y) 它相当于命令:plot(x, y),其中x=[1,2,…,n]或x=[1;2;…;n],即向量y的下标编号, n为向量y的长度
Matlab会产生一个图形窗口,显示如下图形,请注意:坐标x和y是由计算机自动绘出的.
图4.1.1.1 plot([0.,0.48,0.84,1.,0.91,6.14]) 上面的图形没有加上x轴和y轴的标注,也没有标题.用xlabel,ylabel,title命令可以加上.
如果x,y是同样长度的向量,plot(x,y)命令可画出相应的x元素与y元素的x-y坐标图.例:
x=0:0.05:4*pi; y=sin(x); plot(x,y) grid on, title(' y=sin( x )曲线图' ) xlabel(' x = 0 : 0.05 : 4Pi ') 结果见下图.
图4.1.1.2 y=sin(x)的图形 title 图形标题 xlabel x坐标轴标注 ylabel y坐标轴标注 text 标注数据点 legend 在右上角加解释文字
grid 给图形加上网格 hold 保持图形窗口的图形
表4.1.1.1 Matlab图形命令
多重线 在一个单线图上,绘制多重线有三种办法. 第一种方法是利用plot的多变量方式绘制: plot(x1,y1,x2,y2,...,xn,yn) x1,y1,x2,y2,...,xn,yn是成对的向量,每一对x, y在图上产生如上方式的单线.多变量方式绘图是允许不同长度的向量显示在同一图形上.
第二种方法也是利用plot绘制,但加上hold on/off命令的配合: plot(x1,y1) hold on plot(x2,y2) hold off 第三种方法还是利用plot绘制,但代入矩阵: 如果plot用于两个变量plot(x,y),并且x,y是矩阵,则有以下情况: (1)如果y是矩阵,x是向量,plot(x,y)用不同的画线形式绘出y的行或列及相应的x向量,y的行或列的方向与x向量元素的值选择是相同的.
(2)如果x是矩阵,y是向量,则除了x向量的线族及相应的y向量外,以上的规则也适用.
(3)如果x,y是同样大小的矩阵,plot(x,y)绘制x的列及y相应的列. 还有其它一些情况,请参见Matlab的帮助系统. 线型和颜色的控制 如果不指定划线方式和颜色,Matlab会自动为您选择点的表示方式及颜色.您也可以用不同的符号指定不同的曲线绘制方式.例如:
plot(x,y,'*') 用'*'作为点绘制的图形. plot(x1,y1,':',x2,y2,'+') 用':'画第一条线,用'+'画第二条线. 线型、点标记和颜色的取值有以下几种: 线型 点标记 颜色 - 实线 . 点 y 黄 : 虚线 o 小圆圈 m 棕色 -. 点划线 x 叉子符 c 青色 -- 间断线 + 加号 r 红色 * 星号 g 绿色 s 方格 b 蓝色 d 菱形 w 白色 ^ 朝上三角 k 黑色 v 朝下三角 > 朝右三角 < 朝左三角 p 五角星 h 六角星 表4.1.3.1线型和颜色控制符 如果你的计算机系统不支持彩色显示,Matlab将把颜色符号解释为线型符号,用不同的线型表示不同的颜色.颜色与线型也可以一起给出,即同时指定曲线的颜色和线型.
例如: t=-3.14:0.2:3.14; x=sin(t); y=cos(t); plot(t,x, '+r',t,y, '-b')
图4.1.3.1不同线型、颜色的sin,cos图形 对数图、极坐标图及条形图 loglog、semilogx、semilogy和polar的用法和plot相似.这些命令允许数据在不同的graph paper上绘制,例如不同的坐标系统.先介绍的fplot是扩展来的可用于符号作图的函数.
fplot(fname,lims)绘制fname指定的函数的图形. polar( theta, rho)使用相角theta为极坐标形式绘图,相应半径为rho,其次可使用grid命令画出极坐标网格.
loglog 用log10-log10标度绘图. semilogx用半对数坐标绘图,x轴是log10,y是线性的. semilogy用半对数坐标绘图,y轴是log10,x是线性的. bar(x)显示x向量元素的条形图,bar不接受多变量. hist绘制统计频率直方图. histfit(data,nbins)绘制统计直方图与其正态分布拟合曲线.
fplot函数的绘制区域为lims=[xmin,xmax],也可以用lims=[xmin,xmax,ymin,ymax]指定y轴的区域.函数表达式可以是一个函数名,如sin,tan等;也可以是带上参数x的函数表达式,如sin(x),diric(x,10);也可以是一个用方括号括起的函数组,如[sin, cos].
例1:fplot('sin',[0 4*pi]) 例2:fplot('sin(1 ./ x)', [0.01 0.1]) 例3:fplot('abs(exp(-j*x*(0:9))*ones(10,1))',[0 2*pi],'-o') 例4:fplot('[sin(x), cos(x) , tan(x)]',[-2*pi 2*pi -2*pi 2*pi]) %%(图4.1.4.1)
图4.1.4.1 sin,cos,tan函数图形 图4.1.4.2半对数图 下面介绍的是其它几个作图函数的应用. 例5:半对数坐标绘图 t=0.001:0.002:20; y=5 + log(t) + t; semilogx(t,y, 'b') hold on semilogx(t,t+5, 'r') %% (图4.1.4.2)
例6:极坐标绘图 t=0:0.01:2*pi; polar(t,sin(6*t)) %% (图4.1.4.3)
图4.1.4.3极坐标绘图 图4.1.4.4正态分布的统计直方图与其正态分布拟合曲线 例7:正态分布图 我们可以用命令normrnd生成符合正态分布的随机数. normrnd(u,v,m,n) 其中,u表示生成随机数的期望,v代表随机数的方差. 运行: a=normrnd(10,2,10000,1); histfit(a) %% (图4.1.4.4) 我们可以得到正态分布的统计直方图与其正态分布拟合曲线. 例8:比较正态分布(图4.1.4.5(1))与平均分布(图4.1.4.5(2))的分布图: yn=randn(30000,1); %%正态分布 x=min(yn) : 0.2 : max(yn); subplot(121) hist(yn, x) yu=rand(30000,1); %%平均分布 subplot(122) hist(yu, 25)
4.1.4.5(1) 4.1.4.5(2) 图4.1.4.5正态分布与平均分布的分布图 在绘图过程中,经常要把几个图形在同一个图形窗口中表现出来,而不是简单地叠加(例如上面的例8).这就用到函数subplot.其调用格式如下:
subplot(m,n,p) subplot函数把一个图形窗口分割成m×n个子区域,用户可以通过参数p调用个各子绘图区域进行操作.子绘图区域的编号为按行从左至右编号.
例9:绘制子图 x=0:0.1*pi:2*pi; subplot(2,2,1) plot(x,sin(x),'-*'); title('sin(x)'); subplot(2,2,2) plot(x,cos(x),'--o'); title('cos(x)'); subplot(2,2,3) plot(x,sin(2*x),'-.*'); title('sin(2x)'); subplot(2,2,4); plot(x,cos(3*x),':d') title('cos(3x)') 得到图形如下:
图4.1.5.1子图 利用二维绘图函数patch,我们可绘制填充图.绘制填充图的另一个函数为fill.
下面的例子绘出了函数humps(一个Matlab演示函数)在指定区域内的函数图形.
例10:用函数patch绘制填充图