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

【Matlab】坐标轴的设置

[复制链接]
使用matlab的绘图函数plot绘图时系统默认设置了一些属性,例如坐标轴字号大小等并根据情况自动设置坐标轴显示的上下限,这些属性可以通过函数灵活改动,此处总结一小部分。
5 U6 V4 z6 g8 Xfigure;
6 }% ^" p, E5 B%设置坐标轴线宽,加边框,坐标字号& a0 S1 n; N* h6 f5 D: X, j* P
axes('linewidth',1, 'box', 'on', 'FontSize',16);
4 d6 s6 S8 q" i# B% O7 ~
%设置坐标轴label+ U; t" P( Q3 s5 L! u) i
xlabel('
时间(s)','FontSize',16);
4 L+ y9 b$ {8 e, hylabel('
压力(pa)','FontSize',16);7 R: j, S* _7 K1 T  N- E
grid on;! P9 a4 c/ U+ l. {, z
hold on;
4 C: D1 G! ?( w2 m5 mplot(ScopeData1.time, ScopeData1.signals.values, 'k', 'linewidth', 1);

! ~7 g/ H* a, K/ X/ b%设置坐标轴上下限
  I! v) a5 D9 o' L6 r. N4 Sxlim([0, 0.5]);

( J5 [+ M2 s! B* Q! H7 ^3 y( Q8 q3 Cylim([5300000, 5800000]);# v5 U, N, D' E; {1 t1 o1 Y
; f3 H8 s4 ?( ]" @# C
MATLAB
操纵坐标轴
4 G7 C9 G$ y3 K( D' P' m- `5 Taxis off;        %
去掉坐标轴
' w! M7 A9 s- ^3 U. W1 P7 zaxis tight;                     %
紧坐标轴
" I; L( X7 `. K9 q5 T0 p2 _axis equal;                     %
等比坐标轴
; i# w( G, a0 v3 G5 Vaxis([-0.1, 8.1, -1.1, 1.1]);   %
坐标轴的显示范围 . \# H. s8 ?2 x* F& [# k3 d- \

' Q* D  n+ F9 X, }3 \2 @% gca: gca, h=figure(...);
: h* \# Z6 X# a4 l  F! `, H! h/ A5 `set(gca, 'XLim',[3 40]);                   % X
轴的数据显示范围, B* c: ^5 E$ I$ E2 E3 W" T/ r
set(gca, 'XTick',[-3.14,0,3.14] );         % X
轴的记号点 3 E& C) F7 s$ Y( w/ q1 ?& P& \
set(gca, 'XTicklabel',{'-pi','0','pi'});   % X
轴的记号
" z1 E6 U' y5 |$ ^set(gca, 'XTick', []);                     %
清除X轴的记号点
; n6 A, c- v0 g! S+ lset(gca, 'XGrid','on');                    % X
轴的网格# H  D6 i& k3 _( c  o4 s4 c) e
set(gca, 'XDir','reverse');                %
逆转X
; i  i9 L+ |+ Z; b1 k# V1 [4 tset(gca, 'XColor','red');                  % X
轴的颜色7 J0 r; a9 y2 @4 P1 Z6 o' ]( _7 B; `
7 T  |/ ~! u; u4 q+ }& ~; V7 S
% k3 S3 t& y/ [" C
* l8 Q4 [5 ~) d- M6 L* y6 P1 m
[Matlab]图对象
0 ^) ^3 j2 `, o+ }& V4 V
6 g4 I$ d( z% i+ y+ |$ o( y首先要了解的是Matlab是面向对象的。最高等级的对象是screen,它定义了figure可以用的最大szie5 K4 g6 c- ]% @1 M/ X- J  n
screen
下面是figurefigue就是你画图的时候跳出来的那个新的对话窗口。如果figure变化,screen是不会跟着变化的。但screen变化的话,figure就要跟着变化了。( s$ e  o* [! S1 g2 X
figure下面是axesaxes是那个窗口里面你要画的东西。axes的大小和位置取决于figure,如果你放大缩小figure的大小的话,里面的图线也会跟着变化的。
  X3 w- i/ C$ q1 M6 n  Xplot(j,y,'Marker','+','LineWidth',1.5,'LineStyle',':','Color',[00 1])( ~8 j# T' V8 D% C" w# M- O# w
% 设置坐标轴距离画板边距,左下山下,依次调整图的空白区域。
+ m3 S$ R5 Z& d* s8 Mset (gca,'position',[0.1,0.1,1,1] );

4 Q. r8 Y" @8 C$ D! G3 A6 F
3 ]) ~3 {$ l+ O) ]1 @3 v! ~1 q2.matlab画了一张图,投稿时要缩小,缩小后字体就会过小或者发虚。
  w/ U( Q6 z' P' d4 T* ^* r8 x: \$ T' p我摸索出比较好的方法是如下的代码:( I4 N( @' P  k$ @6 K
%%%%%%%%%%%%%%%%%%%%%
! m' f* g# @2 Y%plot your figure before( G. D/ k* I2 ^! t" q3 |' l
%%%%%%%%%%%%%%%%%%%%%% t+ P6 a  x2 v5 A1 n# s( I
% figure resize
# V' e% P+ r4 d, P- \set(gcf,&#39osition',[100 100 260 220]);
/ i( l; V8 E, b% I8 cset(gca,&#39osition',[.13 .17 .80 .74]);
( `5 a/ k0 c& e  Sfigure_FontSize=8;# {3 g8 Y0 c# W4 _; [
set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');
) P9 y7 Y( X) qset(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle');
. {0 n6 s* Q( I( ~/ Lset(findobj('FontSize',10),'FontSize',figure_FontSize);/ x9 h( ^6 h* f; N9 R( H( z
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);
3 ^* b# ^: _# x& ?5 r2 W
%%%%%%%%%%%%%%%%%%%%%%%%%%%%' m; u: w! j/ K, `/ Q# l
解释:
' _3 q% m! k$ |! \$ J$ X8 A& c. Nset(gcf,&#39osition',[100 100 260 220]);
+ X, K0 X  e! s) e
这句是设置绘图的大小,不需要到word里再调整大小。我给的参数,图的大小是175px) J9 x1 t# U1 b6 r5 a4 o% o9 `0 K
set(gca,&#39osition',[.13 .17 .80 .74]);9 c( @& g5 f4 R: m
这句是设置xy轴在图片中占的比例,可能需要自己微调。, |/ E$ i% z% @* L/ p
figure_FontSize=8;' I* x7 \) e- n& |) [$ p7 K- M
set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');
* L1 V" f$ F3 \' k3 q9 ]- H* Mset(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle');
7 {, Z' w" F) v  w* iset(findobj('FontSize',10),'FontSize',figure_FontSize);
! w; Q/ Z& J  a# F( _
4句是将字体大小改为8号字,在小图里很清晰% Z- ~0 C1 `6 v% n% \4 G7 G
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);
7 e% F4 }& K+ f3 Y' o7 j5 z这句是将线宽改为24 S- k2 H+ i1 Y7 S2 m9 ~; A7 ]
3.设置坐标轴参数
5 _6 r6 v& ~, f8 C5 h
1axis,设置当前轴的坐标范围;$ B8 w3 b% Y/ r( y# r* ?
2axes,用指定的特征创建一个新坐标轴;/ S; q; ]  h. S: \; f/ d
3getset,查询或设置已有轴的各种特性;% E( Q8 J/ ]* S4 i& s( R
4gca,返回当前轴的句柄。
2 ~3 H: U. X9 q( _6 m
如果图形中有多个坐标轴,在当前轴为最后图形创建的图形的坐标轴。Matlab绘制图形数据时候,会自动选择坐标轴范围,用axis可以设置新的坐标轴的范围,用一个具有四个元素的矢量表示坐标范围,格式为:/ e) n- Q2 Q: K4 i, G
axis([xmin,xmax,ymin,ymax])
;如果不指定某一个方向范围可以使用inf或-inf表示,则产生半自动坐标轴范围。
6 W& s  d, v# Q0 ^* [- e& {0 d
对于线性坐标轴,matlab会自动根据数据范围设置等间距的坐标轴数值标记,用set,修改gca变量中xtickytick的属性值,可以自定义坐标轴标记。如
% L  o8 [: S- ]. v7 Z. Q- Eset
gca,’ytick’,[-0.3:0.1:1];
" ^+ G7 c. W" L" T6 H) v$ R$ |
可以使用字符矢量通过修改gca变量中的’XtickLabel’实现标记字符,如:8 {2 N5 S* A- l0 U7 d" v- Q4 ]* P
set(gca,’Xtick’,-pi:pi/2:pi);) B/ I, ]" J! n2 l$ f) Z1 k- o7 I) N8 [
set(gca,’XtickLabel’,{‘-pi’,’-pi/2’,’0’,’pi/2’,’pi’};: D; j. L# q' Y- r; G
Axis square
设置两坐标轴长度成相等。7 q, R, @5 T+ a/ J$ w  u
Axis equel
设置坐标轴标记间距相等;* ?+ s5 L2 c4 x1 O! _# Z
Axis equel tight
;设置图形以紧缩方式显示。
! q& X; W  x9 @% K5
.图形窗口
) H5 ^- S8 n) Cfigure(2);%
以第二个图形窗口作为当前图形输出的窗口;
  ]7 p8 |/ O' p& Ysubplot(m,n,i);%
分成m×n个小区域,I指定当前绘图区域;
) ?' s4 B( K; {; F8 n% q3 tcolordef
颜色;%如whiteblack等,设置绘图背景颜色。
8 U5 g9 {0 n2 l  l6
.图形标注
/ O! \2 N! L# I: ~Matlab
提供了几个函数用于图形的标注:3 I5 C9 }- N' B9 R  o5 O2 z
函数名功能描述8 I9 j. R( S. Q9 X; M  R" L" B- ~+ @
Title
添加图形标题
, J5 b# Y; m, @* q$ M7 `Xlabel
xlabelzlabel添加XYZ轴标注
& d( ^9 f# E, Q0 SLegend
在图形中添加图例0 g8 s$ y( O7 ]7 O9 `1 X% Z
Text
在指定位置显示文本0 E' p0 E, r  F4 O% ]' u
Gtext
使用鼠标将指定文本放在图形中的位置
! R6 s4 U2 P% E* {& i( i
如下为添加标题,坐标轴标注实例:3 L& f! W2 y* r! \- |
>> t=0:i/100:i*2;
7 z9 c) e9 a9 @+ R) B0 Y. |5 `>> plot(t,sin(t));! o8 B9 C3 c+ B
>> xlabel('t=0 to 2pi','Fontsize',16);6 v; K8 n* D$ x+ G; b& t
>> ylabel('sin(t)','fontsize',16);0 t/ [1 a$ a5 G* f/ Y* K
>> title('Value of the Sine from Zero to Two pi','fontsize',16)
, x% s  ]1 J) q
注:标注时:pi显示成希腊字母,alphabeta
7 @9 E2 S6 R/ s; a
在图形中添加标注与图例,如下:
6 |3 O! C% H4 K, F( H% F>> t=0:i/100:i*2;
1 l8 s0 J3 `$ q3 r) D  t' a, E>> plot(t,sin(t));
5 W: w+ b" f9 r>> xlabel('t=0 to 2pi','Fontsize',16);: U: L2 E4 K' W  L" w, i7 y+ j
>> ylabel('sin(t)','fontsize',16);: l  J0 S; P, r; j1 u/ m
>> title('Value of the Sine from Zero to Two pi','fontsize',16)% S4 Q9 n8 U2 }! e. F
>> text(3*pi/4,sin(3*pi/4),'leftarrow=.707','fontsize',16)6 X0 B: R  I! \) v( F/ q0 g$ ~
>> text(pi,sin(pi),'leftarrowsin(t)=0','fontsize',16)3 Z: @! E) L% w* C& ^. E& J* C
>>text(5*pi/4,sin(5*pi/4),'sin(t)=-.707rightarrow','HorizontalAlignment','right','fontsize',16)3 u" N# L5 e! i
>> gtext('graph of function sin(x)')
%可以用鼠标指定字符串所需放设位置。: d8 e8 d$ B2 R) B* w
>> H=legend('con','sin',0)
%绘制图例9 q" B+ I; _" t

0 N! A$ q6 u9 u+ d0 R$ N4 [' Q1 T: X( s3 e+ A5 D

4 H! j. _0 y4 q) d- g改变坐标轴的显示位置: C! I, w& e; H% T
set(gca, 'XAxisLocation', 'top')! N6 C* a: Y0 U5 E3 |
set(gca, 'YAxisLocation', 'left')
9 C6 ]2 ?5 N2 u, K8 h+ J                    
: M# O4 T' R8 c0 k2 \
, p0 R. h: ~+ W: j( S1 X                                        转载本文请联系原作者获取授权,同时请注明本文来自叶瑞杰科学网博客。
回复

举报 使用道具

相关帖子

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