数学建模社区-数学中国

标题: 怎样用matlab画饼图 [打印本页]

作者: phinese    时间: 2005-4-20 18:40
标题: 怎样用matlab画饼图
能不能用matlab画饼图,请指教。
作者: ilikenba    时间: 2005-4-21 08:32

pie 二维饼图 " R) x# N: J& q: U. fpie3 三维饼图

符号绘图函数 ( c0 G0 v# y3 G$ ?" I4 {符号函数简易绘图函数ezplot(f) # N1 a4 c% D! H: }f可以包含单个符号变量x的字符串或表达式,默认画图区间(-2pi,2pi),如果f包含x和y,画出的图像是f(x,y)=0的图像,缺省区间是-2pi<x<2pi,-2pi<y<2pi。 & D# l. i6 [/ J3 B$ _+ c* ^Ezplot(f,xmin,xmax)或ezplot(f,[xmin,xmax])绘制在xmin<x<xmax区间上图像! t! _* h. U. V5 O! \1 l" w syms x t5 \3 u8 s6 |. o6 H L ezplot('t*cos(t)','t*sin(t)',[0,4*pi]). H* t5 p' D5 W. t 绘制符号图像函数fplot(fun,lims,tol,’linespec’,n)7 o) U$ G$ o9 N0 `9 q B 其中lims=[xmin,xmax]或[xmin,xmax,ymin,ymax] tol为指定相对误差,默认0.001 ‘linespec’指定绘图的线型 n指定最少以n+1个点绘图 8 Z; h: E9 I$ b2 F[x,y]=fplot(fun,lims,…) 只返回用来绘图的点,并不绘图,可以自己调用plot(x,y)来绘制图形。7 R2 L$ z# R- l6 F4 ^" `+ ? syms x: m/ P B |% j+ c j+ b subplot(2,2,1),fplot('humps',[0,1])5 d/ X8 u7 `# W1 q) y f='abs(exp(x*(0:9))*ones(10,1))'2 w! K$ d6 i. p9 [; x7 Q. i subplot(2,2,2),fplot(f,[0,2*pi])6 n( G% r4 D2 d2 A( N" i subplot(2,2,3),fplot('sin(1./x)',[0.01,0.1],1e-3) - Q% m/ Q/ k/ H+ W' \( p/ K. Cmatlab绘图 1 m- V# R; }+ W, t, D$ N二维图形的绘制 6 |/ {, P" k6 |plot 在(x,y)坐标下绘制二维图像 支持多个x-y二元结构. a7 r" h; a4 K" D plot3 在(x,y,z)坐标下绘制三维图形 9 h: k2 [7 }$ bloglog 在(x,y)对数坐标下绘制二维图形 1 q9 J# n; o' k+ z- x+ e# I2 |5 ]semilogx 在x为对数坐标,y为线性坐标的二维坐标中绘图 6 Z* G9 b" I4 m- |semilogy 在x为线性坐标,y为对数坐标的二维坐标中绘图 x7 c: [3 G: N5 y ^: K& nplotyy 在有两个y轴的坐标下绘图* R' z, |( u) v: p8 q " d: d$ X+ ?! e- V0 wplot用法 ! J: U2 y2 j, H/ P5 Wplot(x,y,'--rs','linewidth',2,'markeredgecolor','k',... * T5 K. K- q7 a8 x% |( `'markerfacecolor','g','markersize',10)5 ?: m# H) y$ E% G5 @" t2 c. C1 h plotyy用法2 [4 z$ c V, V9 u* l plotyy(x1,y1,x2,y2) 以x1为标准,左轴为y轴绘制y1向量,x2为基准,右轴为y轴,绘制y2向量 ! P3 F7 ]" D( m. lplotyy(x1,y1,x2,y2,fun) 用字符串fun指定的绘图函数(plot ,semilogx,semilogy,loglog,stem)1 Q! G m. S. P6 H8 U [, V plotyy((x1,y1,x2,y2,fun1,fun2) 8 A4 G ]' n( P$ f6 e) l- lt=0:pi/20:2*pi; |' ]- Q+ l. a6 `' F y=exp(sin(t));7 h" V( T0 q G+ q1 ?1 K- u plotyy(t,y,t,y,'plot','stem') stem为二维杆图 " N/ A* N0 O% w5 |5 ?3 E ; n. X6 P h( ]. o- c( w[ax,h1,h2]=plotyy(…) 返回左右两y轴的句柄(分别为ax(1) ax(2),以及在两坐标轴中生成的图形对象的句柄,分别为h1 h2; C* P0 K) b5 U t=0:900;. V3 s' n; @3 [ Z/ H A=1000;7 L2 R# v! v3 v2 ]3 k1 M. U a=0.005; * d1 m* i. M- O O4 w' Y& Ab=0.005;& M% A# Y% F' ?# w3 S7 K/ v z2=cos(b*t);, {; N6 U; f7 h; t5 ` d z1=A*exp(-a*t); ; J0 P* T# X9 F- d. ~& m6 H[haxes,hline1,hline2]=plotyy(t,z1,t,z2,'semilogy','plot');' N d% l" L! y8 Q: G8 S7 ^6 p axes(haxes(1)) + {: \# N' s2 c- b V' A: Fylabel('semilog plot') 对数坐标 # L# c4 r/ w. y' M! d& saxes(haxes(2)) 5 }/ y: t ?$ d Q/ x. m( C9 b: z# Mylabel('linear plot') # C! n& B$ a/ G, n, c5 e# e: Lset(hline2,'linestyle','--') ) l! _! @+ W6 [$ d其他二维图形绘图指令9 k1 d7 i9 R1 w7 \; r) d bar(x,y) 二维条形图& \5 }/ V2 \, S) @ hist(y,n) 直方图 5 T, v; v& Y* V$ g: H( S6 q9 F! p' q' ehistfit(y,n) 带拟和线的直方图,n为直方的个数 # d- B2 X5 y, ^+ E/ E/ N0 gstem(x,y) 火柴杆图 6 e) a5 I2 N: r) d: kcomet(x,y) 彗星状轨迹图 8 ~4 u4 y. ~0 z9 t7 Ucompass(x,y) 罗盘图$ N3 ~' g \) Q: Y errorbar(x,y,l,u) 误差限图 " k) u% ]5 v6 V, e2 b& E$ Ffeather(x,y) 羽毛状图% p, r& _3 S% C' E P) Z ~ fill(x,y,’r’) 二维填充函数 以红色填充2 N) [1 u6 v7 g& I; E. G% T% r pie(x) 饼图 * E4 s" X% x. ^# R- j5 ?4 _1 k% Fpolar(t,r) 极坐标图 r为幅值向量,t为角度向量+ d/ w: D A6 K3 m2 C$ w$ W t=0:0.1:8*pi; ' M$ ^7 q2 p% W- F3 [, {1 or=cos(3*t/2)+1/2;) S% O) n7 D6 r& I) y" } polar(t,r),xlabel('polar 指令') * }( I$ Y! g9 Oquiver(x,y) 磁力线图" E1 w, R* C6 \1 q' R stairs(x,y) 阶梯图 8 A+ @- K- Q/ Y: {" C3 kloglog(x,y) 对数图 + O2 G, J B3 V4 C0 l% y* Q) Gsemilogx semilogy 半对数图 # E& b2 D$ N( Z S5 l& t7 M 6 T0 ]7 S4 D0 Z7 }8 _, x7 [matlab三维作图 ! @, n( Z! m. m( P# i, i+ Q7 T' vplot3(x,y,z) 三维线条图, u0 _: h( a$ F& D/ k: Z) H t=0:pi/50:15*pi; l1 u4 F% B% L# { plot3(sin(t),cos(t),t,'r*') 与plot相似4 }* _1 {1 J! k2 Y* U0 p C& d v=axis 返回各个轴的范围 , W% W8 u. G7 m3 b% o# Ptext(0,0,0,'origin') 在某个坐标点加入文字- r1 n) u2 I, B# A O plot3 增加维数可以一次画多个图,使所个二维图形眼一个轴排列 \9 j+ d- D7 ^4 }4 Z& G. j+ B$ ]5 K; O- q 三维网线图的绘制9 y [9 u5 N% l" |$ x) m mesh(x,y,z) 网格图 $ ^0 V4 M- b4 K& z( ^mesh(x,y,z,c) 四维作图,(x,y,z)代表空间三维,c代表颜色维" o8 [% L' i' _ mesh(…,’property name’,property value,…) 设置曲面各属性的值 / y9 x# \2 ?+ H! Y- I[x,y,z]=sphere(12);: K$ l- N8 u- q8 s8 w: |$ N9 U; j mesh(x,y,z),hidden off 曲面设置为透明 ! a" M+ o% N P0 I1 ?' O9 \meshc(x,y,z) 画网格图和基本的等值线图 ; r+ p% C# ^2 ] x7 nmeshz(x,y,z) 画包含零平面的网格图) A$ Q, q1 H2 E, T) L- L/ W waterfall(x,y,z) 与mesh一样,只是在效果上它的网格线只在x轴一个方向出现,呈瀑布状水线8 B# t# \" ]! A5 Y- k 两个变量的标量指令meshgrid(x)或meshgrid(x,y) (p179), h6 x0 l! E" B T3 y. b/ K& S 将两个一维向量生成两个二维向量,以便进行z=f(x,y)运算,算出z的所有值,z为x y的标量指令" x7 n. p# N! T& T% X( t [X,Y]=meshgrid(x) meshgrid(x,x)的简略式+ |2 ^- \3 I& @7 X$ r* ~5 J [X,Y]=meshgrid(x,y)9 O1 F( S* x# [& i' |1 G5 s5 D5 _! B [X,Y,Z]=meshgrid(x,y,z) 用于三维图形的绘制$ E: ]' M0 k# ~. j4 i* k( ?/ k' e( y [x,y]=meshgrid([-2:0.1:2]);8 A C5 A/ @7 |6 F# h z=x.*exp(-x.^2-y.^2); 3 L- z; o# i# g* l: k# M$ Q* e0 ?plot3(x,y,z)9 |' {8 Q+ }( w0 I3 a+ L surf(x,y,z,c) 着色表面图 1 r9 D. ~& e- \6 G. }9 Qsurf(x,y,z) 隐含着c=z # y1 w7 |+ V- s0 ksurf(z) 隐含着x,y的值为surf指令根据z的尺寸自动生成 ' v2 K7 d' e/ J+ vsurfc 画出具有基本等值线的曲面图: p1 k8 G$ X0 u% }! n2 v. s! { surfl 画出一个具有亮度的曲面图 ! S0 s3 b1 P6 l& E7 B* nshading flat 网线图的某整条线段或曲面图的某个贴片都着一种颜色 ' A5 X j1 E. A/ K4 J n# Dshading interp 某一线段或贴片上各点的颜色由线或片的顶端颜色经线性插值而得' O- C0 G7 g6 @9 g2 K 曲面图不能设成网格图那样透明,但需要时,可以在孔洞处将数据设成nun0 u2 `9 [" Q# w4 W4 T7 U / I! d/ {1 i2 C$ z# h' Q( N' S 等高线的绘制3 {. i) f6 ~; C' |# c# ` 在二维空间绘制等高线contour ) D4 T0 J; m0 z( G8 ?contour(x,y,z,n) 绘制n条等值线(n可省略)3 w9 t. S& e. n8 P U. l# g contour(x,y,z,v) 在向量v所指定的高度上绘制等高线(可省) 4 C. x8 |% o+ J. u) Ic=contour(x,y,z) 计算等值线的高度值 ! Q% D8 c$ D4 s; r- Fc=contourc(x,y,z,n) 计算n条等高线的x-y坐标数据 5 f. P$ U: p# E" @c=contourc(x,y,z,v) 计算向量v所指定的等高线的x-y坐标数据$ X0 m0 H! ?. [7 G: C& e clabel(c) 给c阵所表示的等高线加注高度标识 ; D9 h# L/ I9 j# Z' M q3 u0 uclabel(c,v) 给向量v所指定的等高线加注高度标识$ t% _% ~# A ]- s. l clabel(c,’manual’) 借助鼠标给点中的等高线加注高度标识5 `: n( r+ I+ x f) d2 j/ y$ y( \: t 三维空间绘制等高线contour3(x,y,z)0 t1 h5 d5 v6 v6 o: F( v6 ?! D* z [x,y,z]=peaks(30);, Y5 B/ w: v: c9 U. t* O8 ? contour3(x,y,z,16,'g')- ^! K* \8 l. X. z! u& A 二元函数的伪彩图pcolor(x,y,z) 3 p: G8 P6 r8 n8 _2 W是指令surf的二维等效指令,代表伪彩色,可与contour单色等值线结合画彩色等值线图 0 K% c4 l" {+ m[x,y,z]=peaks(30);4 S- n$ M( R( U) B ^' \ s$ ?) `) s pcolor(x,y,z); 伪彩色 : x; [8 M# k8 U+ t& Bshading interp 颜色插值,使颜色平均渐变 # C, t( C% `7 e( P) X* u+ Lhold on,contour(x,y,z,20,'k')... 画等值线 $ t: s1 E) z g8 `$ ]colorbar('horiz') 水平颜色标尺. Q+ r5 U9 J5 i* ^" a3 ~7 }8 q c=contour(x,y,z,8); : ^: `5 N5 d" C, S+ S" p0 Y$ wclabel(c) 标注等高线 , C2 l) W' q: o# h% X Q 矢量场图(速度图)quiver6 Y1 Y1 V j$ V/ b 用于描述函数z=f(x,y)在点(x,y)的梯度大小和方向, h( k' ^* R. l: p [X,Y]=meshgrid(x,y) X,Y为Z阵元素的坐标矩阵 _$ A( U( \5 D3 q9 P[U,V]=gradient(Z,dx,dy) U,V分别为Z对x对y的导数,dx dy是x y方向上的计算步长/ f9 g6 ]$ {( N quiver(X,Y,U,V,s,’linespec’,’filled’) U,V为必选项,决定矢量场图中各矢量的大小和方向,s为指定所画箭头的大小,缺省时取1,linespec为字符串,指定合法的线形和彩色,filled用于填充定义的绘图标识符& ^3 u% V: G) H1 d [x,y]=meshgrid(-2:.2:2,-1:.15:1); 5 O" g- J& Z! r. n2 _+ y8 j% d# hz=x.*exp(-y.^2); ; P- x! | _3 T9 `[px,py]=gradient(z,.2,.15); $ W4 j6 d" @9 O) ^$ O( a5 F' Fcontour(x,y,z); 5 F2 W) ~) e1 K) u, Z6 ?hold on,quiver(x,y,px,py),axis image& I9 r5 z* d: { b4 q( c( Q 多边形的填色fill(x,y,c)" G3 K$ o; c/ b. w( { c定义颜色字符串,可以是’r’,’b’等,也可以用RGB三色表示[r,g,b]值为0-17 h$ @* S( W- ~0 y4 v& P; m& o2 r 图形的四维表现 8 S) p$ S9 W3 B0 h


作者: 模客    时间: 2009-2-4 18:19
使用pie就能画二维图了
: S3 s* _% {+ T( u, iPie3画三维图
作者: salmon~~    时间: 2012-7-12 16:36
>> x=[1 3 0.5 2.5 2];
! @  T, B0 n2 m! z>> explode=[0 1 0 0 0];
4 j6 m8 W, y1 }. r>> pie(x,explode)




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5