EDA365电子论坛网
标题:
MATLAB axis和axes的区别
[打印本页]
作者:
uperrua
时间:
2020-9-10 15:10
标题:
MATLAB axis和axes的区别
4 M0 w: ]3 u) e6 _8 c1 @' V: Q# k
axis中文为“轴”之意,在matlab中用于控制坐标轴的范围和样式(颜色等)。
0 J# M* G2 O) w* o/ }) w
]( t/ w7 R" X4 F
axis([XMIN XMAX YMIN YMAX]) 设置当前所绘图像的x轴和y轴的范围。
' l( }% i( Z2 C' |
axis([XMIN XMAX YMIN YMAX ZMIN ZMAX]) 设置当前所绘图像的x轴、y轴和z轴的范围。
4 Y! N" x+ t2 a5 |$ I* F) |
$ G3 K8 ~. a: n( W2 d' f
例子:
$ c& R2 s( Q1 B: n, ^7 O
* G% }7 u2 Z' j9 a
>> x = [1,2,3,4,5];
9 r% Y" Z, M( S7 S7 P
>> y = [2,3,4,5,6];
6 ^2 q$ @4 f. D1 c8 T4 ?
>> plot(x,y,'o')
6 M! m, b6 v% v+ g9 K3 ^
; m: c6 R8 G0 R+ e3 h5 ]
>> axis([0,5,0,6]); %axis要放在plot之后
; F7 n0 w. k6 ~. w9 [
+ _ H* ^2 C, O) d8 }9 m) J
得到图像
& N1 J5 l5 ]) h; s% B1 k9 F
8 w1 U* _* _, s8 }. J1 M; [
2 |/ F: d& U9 x' K' s
1 a* ?5 m: L( e5 r+ J6 E' H
axes ★★★★★
, s( e3 F3 s( ~2 J9 c# C8 r
5 b( S! V l6 o) E9 v7 ]2 e3 P
. p1 l4 a( G- r/ j3 [1 n
; n8 \$ @- `1 j% n o
功能
}6 R9 n* h( A- S
6 ?- }$ g& n0 ?( |% j" Y+ r r% M
创建坐标系图形对象
2 L% w& @4 S8 S: ~' L" R
: {& o/ W6 a8 I$ w4 ]
" ~6 k! T; a* r& d' ?& j
& x3 i- P$ d% ^7 Q' A
语法
4 J% C! q% v+ t3 A
3 e' U. C& }1 g1 |5 s* l) A, p5 O
axes
! J, m* V1 n# a
axes('PropertyName',propertyvalue,...)
5 Z) s/ ]; F; e2 b! B" A! a X* b' \
axes(h)
( `5 b/ G3 Y* t! @( T L
h = axes(...)
( R! O% Z; q5 _+ A `, p
" A5 I1 J6 ]+ G2 O
1 Q; v% N3 g( \9 j: H
* F) i# P! B( W$ N" | O, ^
描述
$ [0 v. q, J6 S* K+ z
, O8 G% V: N H8 s- d4 A9 k
axes在当前窗口中创建一个包含默认属性坐标系
4 J3 I; ? N+ |4 F
% x! Z, o9 E* M2 [
& ]0 c- ]; L2 R7 @$ Y) p
axes('PropertyName',propertyvalue,...)创建坐标系时,同时指定它的一些属性,没有指定的使用DefaultAxes**,当然可以在以后使用set/get函数进行设置/读取,坐标系axes所有属性参见附录
5 r- V( S' R O3 e% C9 t
- P: R! U+ Q1 s/ O- X1 r
2 R2 N- I& o, ^0 l
axes(h)将坐标系h置为当前坐标系,同时将figure中的CurrentAxes属性设置为h,并且将h排列到children属性中第一个axes位置。默认情况,所有图形函数都是在当前坐标系上绘图
2 u" i% g/ q% q4 q4 @; P3 n
, S7 U2 H; @8 k( n* W
: n( A) p) f& Z- T' k5 N$ ?
h = axes(...)创建坐标系时返回它的句柄,方便以后操作
L+ ]3 ~) ]" @' ?1 S
7 ]* q+ I- v0 Z- L, |5 V
) w6 y% K" \4 u+ k/ w3 P
7 u- M) v; c) f$ n) A2 B4 U
注意
# E' k& y& U- R1 W' H+ g) @
D0 T6 X+ ^% `
当在执行绘图操作时,如果没有axes或figure,MATLAB会自动创建一个axes或figure
2 K. p. f; R6 {( _( P
+ D8 @: Y5 s; q H, g& l
每次创建新axes时,所有的属性都会重置为DefaultAxes**;正常情况每次调用高级绘图命令时,会重置axes部分属性,比如ColorOrder、LineStyleOrder等
$ g- [( i. ~2 F) P
& P( L, g; K, Y. r! Y. s
/ ]5 @' ?5 H( L7 M- G) s, _8 G
! T* g0 K8 g; q, O- e
set(figure_handle,DefaultAxes**,Value)可以自定义axes的默认属性
; t1 o' p: K9 }# s: J
. O' d- u: O% o3 w' C+ ]' q
2 X# }' y% A, w4 { _
2 v) e% G G: u2 Y7 [
axes是创建一个坐标系,而axis是对坐标系的简单控制,比如外形、比例等
! n0 z3 o& g8 @8 ]. l. H: ?
' V* t+ |! }+ l' h- ^
" ~. ?& Z+ `2 s, {- u* s2 l! X
4 U% T4 b0 T& o, l0 g
创建时有三种方式直接指定属性,无先后顺序,不区分大小写,效果一致
5 W# B# Z" R1 |- U$ |5 i8 f
' q u- Q' M O$ X* m1 Y
8 [/ p" K2 D9 `
" Q. w) B0 G8 C+ o/ v6 n
(1)Name/Value配对形式
: s; j; l: E+ t7 j h" y
+ {. c# {* T( Z; E
axes('Position',[0.2 0.2 0.6 0.6],'XGrid','on','XTickLabel',[])
5 C+ O1 [) }6 X7 q
! I% j! x. l/ O2 ]
* G5 l$ {5 K+ g. }$ _* l! |' F
0 C6 S7 k }6 I; A0 R4 U7 E8 Q1 b
(2)结构体形式
/ M8 F' [' |! Z7 u |
- A( ^# t1 D5 [4 s" p
pp.Position=[0.2 0.2 0.6 0.6];
3 n# P; S1 c; v1 r- u3 e
7 R$ I- l- y, s9 Q
pp.XGrid='on';
% j/ M- o$ r) U5 R1 d
9 P' n9 N" o) c Y0 b3 i
pp.XTickLabel=[];
3 B, @. D1 X d* c l9 }
3 D+ y0 r1 @' v w8 @7 @
axes(pp)
0 Y/ E- z" {3 R$ w( Z( {) u7 ` ?
$ Q4 K4 r# M' F8 ^2 J5 s% s
4 U% v0 N1 @" S/ ^ {* @# B7 ] s
. r, V v, n' _' V5 j F. J
(3)细胞元组形式
. ]8 U4 m. s" A7 @$ `4 I
' h! w, N' Z% C; u% a
Name={'Position','XGrid','XTickLabel'};
5 L( X. j3 _. J5 x) K2 ]7 t, M/ ?9 S
/ k4 x# a. M* i4 X" u; U7 ~$ k
Value={[0.2 0.2 0.6 0.6],'on',[]};
0 D, [* v% A8 q- C) ]
2 @% ~5 ?* G; U9 L
axes(Name,Value)
0 P7 I& W6 b! A2 s8 w6 x5 s% @
. e, @, p, P4 J- C* A' A! m
# ~0 M( W/ m8 }: b* P
" q P0 b4 j) U* _9 r
实例
# ^$ I* d7 U2 p* |, S: c
+ o# {9 H7 a8 _7 }3 @
% 先创建两个坐标系,过程中指定某些参数
' j: N [- G: n! y/ `+ B& ?+ C7 F
7 t6 c/ C; F; |0 B2 u
h1=axes('Position',[0.1 0.2 0.3 0.6],'Unit','normalized','LineStyleOrder',':|--|-.|-');
; k8 \; I* y+ [3 Q" W; X n% m. Z# I0 v
5 t1 ^( G5 i1 `$ X8 r: M9 F. Y
h2=axes('Position',[0.6 0.2 0.3 0.6]);
7 w' ~0 z; a2 a$ }% Q7 ^% H) |
- Z1 b" C' v. p8 `, C
% 将h1设置为当前坐标系,为绘图准备
7 @* M j* O6 g4 Z! {
2 Y$ j8 S0 e8 G5 p0 H
axes(h1)
8 C2 i# Y5 U/ w/ s
- _0 x; a" v' D' t: e/ i
plot(rand(10,3)) % 即使创建h1时将线型顺序修改了,但由于每次调用plot会将LineStyleOrder重置为'-',故这里是看到的都是实线
' ?6 B" Y% @. Q1 w; I
5 W0 C! o! c. `* W6 a9 V: V
5 将h2设置为当前坐标系
# M5 ?* s) }. ]7 K! N% G$ y7 v2 i
4 z$ O4 H; n# {7 A; y3 ~; _/ u% m
axes(h2)
& P: v9 V3 d( i4 K+ i6 Z0 L
! U {6 b( z& T* F3 e
[x,y,z]=peaks;
% l8 X7 r% u+ w
( y6 d( e( Q+ T1 _& |3 {% R
mesh(x,y,z)
1 m8 X& X5 z4 z7 X
$ W8 B% x! [+ M! t
set(h2,'Visible','off')
作者:
youOK
时间:
2020-9-10 15:52
MATLAB axis和axes的区别
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2