收藏本站 劰载中...网站公告 | 吾爱海洋论坛交流QQ群:835383472

【Matlab】坐标轴的设置

[复制链接]
使用matlab的绘图函数plot绘图时系统默认设置了一些属性,例如坐标轴字号大小等并根据情况自动设置坐标轴显示的上下限,这些属性可以通过函数灵活改动,此处总结一小部分。8 n+ J& s6 ~, a5 Z9 M! J* N) I
figure;% a7 m9 |4 d. N, f4 c
%设置坐标轴线宽,加边框,坐标字号
: z* {- a; Z, ]1 T' `4 V) Y# kaxes('linewidth',1, 'box', 'on', 'FontSize',16);
- K8 m& d& `) U2 K7 |* X5 T7 }
%设置坐标轴label# S8 ^4 e+ B& g* x2 h9 N
xlabel('
时间(s)','FontSize',16);
7 R9 ^% D! ]9 X+ W7 qylabel('
压力(pa)','FontSize',16);# P/ j' S7 j4 t8 E
grid on;5 ^' B" |3 X& h" P, q; b
hold on;
( e5 W% l& n. k8 G. k* u! J# }+ T3 a3 y! Pplot(ScopeData1.time, ScopeData1.signals.values, 'k', 'linewidth', 1);
- ]+ L7 |* x4 Q# H
%设置坐标轴上下限1 N+ ~2 p" J$ K6 \8 C
xlim([0, 0.5]);
1 y6 _1 }7 E9 e; F
ylim([5300000, 5800000]);
" H$ I8 l# o1 [0 k
$ z. k7 I3 B' H7 V2 EMATLAB
操纵坐标轴* c* ]! Y" q2 M. @, u' ?2 y
axis off;        %
去掉坐标轴7 }' D. E  Y, Y% ~
axis tight;                     %
紧坐标轴
* W% \% U: p% w- k1 O6 Naxis equal;                     %
等比坐标轴* D- T% b. O: g: r+ n( [
axis([-0.1, 8.1, -1.1, 1.1]);   %
坐标轴的显示范围 - H6 J1 t. a: V& J1 K$ ^; K/ S
6 H' y5 t( }0 x1 m
% gca: gca, h=figure(...);
3 q6 B6 s' L3 k& J/ iset(gca, 'XLim',[3 40]);                   % X
轴的数据显示范围/ L( c- e( {& P3 k
set(gca, 'XTick',[-3.14,0,3.14] );         % X
轴的记号点 1 c. \5 j2 b9 m. l
set(gca, 'XTicklabel',{'-pi','0','pi'});   % X
轴的记号
9 M) \+ W* c5 E1 u. U  Lset(gca, 'XTick', []);                     %
清除X轴的记号点/ B* X- N7 [* C& u
set(gca, 'XGrid','on');                    % X
轴的网格
8 _9 E1 q3 V) e1 _) g9 ]6 uset(gca, 'XDir','reverse');                %
逆转X4 A5 k! ^  W8 k% X/ L
set(gca, 'XColor','red');                  % X
轴的颜色
. x4 F/ o' A3 i1 d5 Y6 a7 ?, u# e; S" q5 w( ]1 H7 N

+ |1 B7 ~8 E; ^
$ `% P2 |: @' P# u9 d4 r, P2 t  ^# w
[Matlab]图对象
: ]$ j0 y3 ]# d- k
  ]; P' j. I# h$ g2 w* `首先要了解的是Matlab是面向对象的。最高等级的对象是screen,它定义了figure可以用的最大szie
: g( B4 }& d) {1 Pscreen
下面是figurefigue就是你画图的时候跳出来的那个新的对话窗口。如果figure变化,screen是不会跟着变化的。但screen变化的话,figure就要跟着变化了。4 Z5 V' O2 @. X# h" o. P8 D
figure下面是axesaxes是那个窗口里面你要画的东西。axes的大小和位置取决于figure,如果你放大缩小figure的大小的话,里面的图线也会跟着变化的。2 L4 X) O4 S( f( O$ S2 g
plot(j,y,'Marker','+','LineWidth',1.5,'LineStyle',':','Color',[00 1])
% R- o" S7 I: t3 j5 I% 设置坐标轴距离画板边距,左下山下,依次调整图的空白区域。6 C: @  d% _+ @9 o* l1 r5 W
set (gca,'position',[0.1,0.1,1,1] );

" d5 l' C# ^/ ~6 { . _; {7 q" b1 s
2.matlab画了一张图,投稿时要缩小,缩小后字体就会过小或者发虚。
, n! C1 r5 I: M9 n我摸索出比较好的方法是如下的代码:
0 F" l& ^9 {! o, z%%%%%%%%%%%%%%%%%%%%%
  g: w, S# r5 Y; G' u) ^%plot your figure before
" L* b$ Z1 X# R8 c9 u%%%%%%%%%%%%%%%%%%%%%* w1 v8 x5 e# u4 n3 _' L8 {2 t1 m
% figure resize
. n7 T+ |" Z' Bset(gcf,&#39osition',[100 100 260 220]);
& B+ b  G6 k/ a! f. Bset(gca,&#39osition',[.13 .17 .80 .74]);1 a- F. U! g( Y' x1 ~
figure_FontSize=8;5 f$ U- f- ~5 P, j" |" o
set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');
9 _5 W* {9 X% B6 [set(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle');
3 o8 O9 e! t- l) a. aset(findobj('FontSize',10),'FontSize',figure_FontSize);' w" b& H  h8 u& G
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);

0 T7 S( q/ o' l! b& m' ?% B%%%%%%%%%%%%%%%%%%%%%%%%%%%%
& e: q: A( |! O解释:0 i# P9 p% W2 l2 u5 Y
set(gcf,&#39osition',[100 100 260 220]);' X6 R& `$ d) K; r. P, ~
这句是设置绘图的大小,不需要到word里再调整大小。我给的参数,图的大小是175px3 A: n( r! f! l; f; }
set(gca,&#39osition',[.13 .17 .80 .74]);
( ~- Z& w" O) g3 i; b% W; F
这句是设置xy轴在图片中占的比例,可能需要自己微调。
  ?% l3 k3 E( v. p  g0 D' Z5 qfigure_FontSize=8;
( X6 w4 ]) t& P7 ^2 yset(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');/ x3 f( W- @3 `% R9 l+ b$ |3 ?
set(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle');
& J4 t: [  |+ H- H" y: ?set(findobj('FontSize',10),'FontSize',figure_FontSize);
+ s7 `/ l0 d" E  s9 j7 @
4句是将字体大小改为8号字,在小图里很清晰% h1 k  n/ N( V" e4 a
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);: i3 G* e  o3 Q( o, ~3 g& h0 i
这句是将线宽改为2
/ a. b9 g; ]1 i% x7 N; V. T3.设置坐标轴参数
: `$ k0 h6 u' K/ m/ W) c% W- `
1axis,设置当前轴的坐标范围;
1 H0 E% m2 n6 O  E8 E
2axes,用指定的特征创建一个新坐标轴;3 V+ f9 Z+ X8 C/ I6 ]  g8 R  H
3getset,查询或设置已有轴的各种特性;
2 e4 {( S+ ~) Q; p' `
4gca,返回当前轴的句柄。
% B* {" |7 l3 @6 e/ A
如果图形中有多个坐标轴,在当前轴为最后图形创建的图形的坐标轴。Matlab绘制图形数据时候,会自动选择坐标轴范围,用axis可以设置新的坐标轴的范围,用一个具有四个元素的矢量表示坐标范围,格式为:% G: I: d4 U' [" J$ I0 W% j$ w
axis([xmin,xmax,ymin,ymax])
;如果不指定某一个方向范围可以使用inf或-inf表示,则产生半自动坐标轴范围。
7 c# H% H! }+ K- l- M3 P: L
对于线性坐标轴,matlab会自动根据数据范围设置等间距的坐标轴数值标记,用set,修改gca变量中xtickytick的属性值,可以自定义坐标轴标记。如
$ ]; m7 W1 \  ?set
gca,’ytick’,[-0.3:0.1:1];
* e. w5 v: a7 b
可以使用字符矢量通过修改gca变量中的’XtickLabel’实现标记字符,如:
) a7 d. o, A1 l# h# O+ Tset(gca,’Xtick’,-pi:pi/2:pi);
# I& k) D( ?: Gset(gca,’XtickLabel’,{‘-pi’,’-pi/2’,’0’,’pi/2’,’pi’};- d% k+ C$ C: ]( y" X6 b$ b: Z
Axis square
设置两坐标轴长度成相等。
' \+ ~* X5 B9 G1 EAxis equel
设置坐标轴标记间距相等;0 d( C3 h  O/ A1 k. g7 w# h
Axis equel tight
;设置图形以紧缩方式显示。
- Y: L1 \  X/ N) ?# \9 `( y  i5 d; s5
.图形窗口3 T7 k$ ]3 y, c7 ^
figure(2);%
以第二个图形窗口作为当前图形输出的窗口;
. \8 H8 [1 g7 c6 dsubplot(m,n,i);%
分成m×n个小区域,I指定当前绘图区域;
: |; f/ h; D3 R6 R2 l( A2 X/ N2 @colordef
颜色;%如whiteblack等,设置绘图背景颜色。
5 x0 N( D, L) b2 _6
.图形标注
8 c' J8 o5 @, s8 q7 tMatlab
提供了几个函数用于图形的标注:0 N0 V7 I3 ^9 j1 d, W$ ?  o+ Q
函数名功能描述
( y# F- X- O+ L2 s" I  U. oTitle
添加图形标题  b& o+ `6 i7 N5 `+ _( g9 m% J
Xlabel
xlabelzlabel添加XYZ轴标注5 _. |! n- u5 w! }' {6 x
Legend
在图形中添加图例9 c( l! J# h/ |! a* M0 }
Text
在指定位置显示文本
7 @7 H/ C+ I6 Y2 hGtext
使用鼠标将指定文本放在图形中的位置
1 W, j; O9 l5 ?5 F+ @
如下为添加标题,坐标轴标注实例:
  O9 d" ~( p: F1 x>> t=0:i/100:i*2;& D1 Y9 v4 N. L8 l
>> plot(t,sin(t));) b! d! m# i1 k9 K
>> xlabel('t=0 to 2pi','Fontsize',16);
9 w+ n( g" t: s9 G7 H>> ylabel('sin(t)','fontsize',16);9 J. Q% d8 \" I
>> title('Value of the Sine from Zero to Two pi','fontsize',16)
0 U9 W0 Y5 V$ t. w5 Q5 i' P: s5 ?9 o: F
注:标注时:pi显示成希腊字母,alphabeta
9 @' u# g8 J+ R) m% y
在图形中添加标注与图例,如下:
8 `/ i  ~: ]" C+ ?6 S, W' Z0 J  S8 r>> t=0:i/100:i*2;/ w7 q$ b) _" L
>> plot(t,sin(t));
9 e$ Y7 W# L! M9 F" x1 Y' H>> xlabel('t=0 to 2pi','Fontsize',16);
1 M/ r& Y5 s. r>> ylabel('sin(t)','fontsize',16);
( W. Z! W: p: V: y* K  R>> title('Value of the Sine from Zero to Two pi','fontsize',16)! P# j/ d- I: [' l) s
>> text(3*pi/4,sin(3*pi/4),'leftarrow=.707','fontsize',16). F  `. D! G3 s1 |
>> text(pi,sin(pi),'leftarrowsin(t)=0','fontsize',16)
+ ?1 X( n: N" p  `: N+ ^1 T>>text(5*pi/4,sin(5*pi/4),'sin(t)=-.707rightarrow','HorizontalAlignment','right','fontsize',16)) f* F- {7 M: B) k5 M  x! y
>> gtext('graph of function sin(x)')
%可以用鼠标指定字符串所需放设位置。5 z% B) B9 ~3 @# m% Q' M, C- R5 [
>> H=legend('con','sin',0)
%绘制图例; L! |9 v; m& x7 p
3 W+ y. S7 A- `: s9 w7 ~
: y7 O7 O2 L# Q6 ~# I5 X* v1 U
. e  B3 o3 [, U+ G% Z- D  Z& X$ _
改变坐标轴的显示位置  X. x* d. O& F
set(gca, 'XAxisLocation', 'top')2 y3 f: m) w  [" n! [- w' T7 |( u
set(gca, 'YAxisLocation', 'left')
2 m% {1 V& N; |/ _$ m! w                    & T* Z: [& E* Q9 b; {0 I7 {5 V
" {0 Y2 n0 ]& z3 Z+ f6 ~
                                        转载本文请联系原作者获取授权,同时请注明本文来自叶瑞杰科学网博客。
回复

举报 使用道具

相关帖子

全部回帖
暂无回帖,快来参与回复吧
懒得打字?点击右侧快捷回复 【吾爱海洋论坛发文有奖】
您需要登录后才可以回帖 登录 | 立即注册
黄金品质
活跃在2021-12-8
快速回复 返回顶部 返回列表