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

【Matlab】坐标轴的设置

[复制链接]
使用matlab的绘图函数plot绘图时系统默认设置了一些属性,例如坐标轴字号大小等并根据情况自动设置坐标轴显示的上下限,这些属性可以通过函数灵活改动,此处总结一小部分。& j& z. x- Y6 H9 e: j
figure;
+ q! t! m3 @% I2 m%设置坐标轴线宽,加边框,坐标字号
6 S& B; D$ y- a. Taxes('linewidth',1, 'box', 'on', 'FontSize',16);
+ `. ?4 f/ O" Z9 w" U5 b
%设置坐标轴label
0 o' ?" E' `* _8 R- ~/ \xlabel('
时间(s)','FontSize',16);3 `6 p! y8 ?$ p5 l# }) P# d, p6 T
ylabel('
压力(pa)','FontSize',16);9 K7 ]3 J5 A# {# o. l$ J  i/ }
grid on;
! e$ `2 C2 x7 e; a* C3 b8 ?- ehold on;
0 F) S# e- `7 g3 F# rplot(ScopeData1.time, ScopeData1.signals.values, 'k', 'linewidth', 1);

5 f) X$ ~7 l3 z. ~4 R# Z%设置坐标轴上下限
) ~+ |% ^7 W/ g7 B/ txlim([0, 0.5]);

8 `. W' _1 Q' m$ y" x3 uylim([5300000, 5800000]);3 B' s8 a: ?3 I

; q/ ^: z. O6 |, {MATLAB
操纵坐标轴
4 K3 Z3 J2 D1 k$ Faxis off;        %
去掉坐标轴4 l2 o: |# a' A! R% o1 ~
axis tight;                     %
紧坐标轴
4 }  I  i" x! e! j$ o" C% xaxis equal;                     %
等比坐标轴: f& M0 E* K8 A- B$ j& K4 R
axis([-0.1, 8.1, -1.1, 1.1]);   %
坐标轴的显示范围 . p7 A  a! g/ u2 x* l( Q& ~1 v6 J% |
+ x" B8 q& F4 Q" Z. e
% gca: gca, h=figure(...);* K+ m, v1 J2 k% ?
set(gca, 'XLim',[3 40]);                   % X
轴的数据显示范围/ M2 t- O. [$ |# D8 H/ f8 w, ]
set(gca, 'XTick',[-3.14,0,3.14] );         % X
轴的记号点
1 J! Z& M& g8 D" U7 I4 s( K  Uset(gca, 'XTicklabel',{'-pi','0','pi'});   % X
轴的记号% J. `& k2 b$ T6 ^8 |
set(gca, 'XTick', []);                     %
清除X轴的记号点6 X0 V0 z) K, @! d7 `+ X2 R' g
set(gca, 'XGrid','on');                    % X
轴的网格2 S% s/ d- ^# C- b" o! P! M
set(gca, 'XDir','reverse');                %
逆转X) r! W5 p* @6 p" M/ X& J  Q( `
set(gca, 'XColor','red');                  % X
轴的颜色; r0 o9 |% r+ `1 S$ L7 x

. z7 }  [% f4 Z! c* D- `$ g; |6 z+ D
) |: I( K- e' K0 E: y4 a$ A0 J! A# C
[Matlab]图对象8 {; x8 |2 Y  H: o

7 I  X- @7 M, u4 ~$ S首先要了解的是Matlab是面向对象的。最高等级的对象是screen,它定义了figure可以用的最大szie
$ @% S4 M  m* j: B) ~2 N( yscreen
下面是figurefigue就是你画图的时候跳出来的那个新的对话窗口。如果figure变化,screen是不会跟着变化的。但screen变化的话,figure就要跟着变化了。+ z) K& _- @8 P' H8 x
figure下面是axesaxes是那个窗口里面你要画的东西。axes的大小和位置取决于figure,如果你放大缩小figure的大小的话,里面的图线也会跟着变化的。" J" W& n5 s: X3 Z3 S$ J
plot(j,y,'Marker','+','LineWidth',1.5,'LineStyle',':','Color',[00 1])
0 F: S; L5 l  p# h! ~% 设置坐标轴距离画板边距,左下山下,依次调整图的空白区域。9 j! G6 u3 D; u& m( e
set (gca,'position',[0.1,0.1,1,1] );
5 o; {4 ^8 L+ }, B, ^) c9 O

( p* }" W6 Y8 }; _  ?* y2.matlab画了一张图,投稿时要缩小,缩小后字体就会过小或者发虚。3 n7 T& a/ M" Y5 b7 _- e+ a
我摸索出比较好的方法是如下的代码:. _' G! I; E2 i& N/ s  U3 c
%%%%%%%%%%%%%%%%%%%%%
7 T( O/ u4 i& ~) ]" U8 P%plot your figure before+ Q6 K, k* a- T5 m
%%%%%%%%%%%%%%%%%%%%%9 V! Z1 r5 x+ u. K8 _+ G% q. G% _# C7 B
% figure resize$ b% _7 g2 I& P) j6 F0 n
set(gcf,&#39osition',[100 100 260 220]);+ z# ?8 Z9 x/ `, I3 O8 I7 [9 e7 f
set(gca,&#39osition',[.13 .17 .80 .74]);
- x( O) K# g+ Y$ P& d6 a! `figure_FontSize=8;8 i8 T! l; F  h1 Y
set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');
) Z! E' ^7 z: H- Zset(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle');1 o' K" _% ^% a/ s2 }" G
set(findobj('FontSize',10),'FontSize',figure_FontSize);
( d2 J% m$ r  _: G5 D7 g( eset(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);
0 V  l8 Q* U5 t4 ]$ V6 R
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! a/ [! Z0 h; b. C" E3 M解释:2 ]: N+ Z  R& Q' y5 s( F
set(gcf,&#39osition',[100 100 260 220]);
1 F, J+ A* q2 t/ f' m* w) v
这句是设置绘图的大小,不需要到word里再调整大小。我给的参数,图的大小是175px
' v3 k: w3 L  W; ]: h% uset(gca,&#39osition',[.13 .17 .80 .74]);
' r( j5 A$ |+ X: C  r
这句是设置xy轴在图片中占的比例,可能需要自己微调。2 O  U9 E8 w' V. X5 B
figure_FontSize=8;" x% v' S6 z8 j& h' t2 v
set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');; y1 u% M( H+ q9 ~
set(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle');
3 S& H3 N# P0 A1 qset(findobj('FontSize',10),'FontSize',figure_FontSize);

8 @1 W* |0 k" F8 z$ q. j4句是将字体大小改为8号字,在小图里很清晰
; ~9 Q( A  C: J% n# vset(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);
% k, F0 ^7 Z% s, W7 Z; x" a这句是将线宽改为2# n( V+ H( w: O+ P* y
3.设置坐标轴参数$ B3 ~# }3 f8 i  ^# A+ m
1axis,设置当前轴的坐标范围;
- y, G1 ^- [$ A
2axes,用指定的特征创建一个新坐标轴;
% S" Q( |. y1 Z
3getset,查询或设置已有轴的各种特性;' h% b% j, h; G1 K
4gca,返回当前轴的句柄。* e# K# z1 o( ]( P% L' F
如果图形中有多个坐标轴,在当前轴为最后图形创建的图形的坐标轴。Matlab绘制图形数据时候,会自动选择坐标轴范围,用axis可以设置新的坐标轴的范围,用一个具有四个元素的矢量表示坐标范围,格式为:0 m: u- c* F" R3 Z! K& j
axis([xmin,xmax,ymin,ymax])
;如果不指定某一个方向范围可以使用inf或-inf表示,则产生半自动坐标轴范围。
" e6 N( R* I' Q# }
对于线性坐标轴,matlab会自动根据数据范围设置等间距的坐标轴数值标记,用set,修改gca变量中xtickytick的属性值,可以自定义坐标轴标记。如
1 V" C# p* q; E- L  }set
gca,’ytick’,[-0.3:0.1:1];
( B0 S& \1 F( Y  t" z6 n* f# W) f% {
可以使用字符矢量通过修改gca变量中的’XtickLabel’实现标记字符,如:
. `; ~0 C- E! ?7 L0 i( M5 Aset(gca,’Xtick’,-pi:pi/2:pi);
+ S: e( {4 H6 ]/ _  Qset(gca,’XtickLabel’,{‘-pi’,’-pi/2’,’0’,’pi/2’,’pi’};3 I9 V& \3 }: R* h
Axis square
设置两坐标轴长度成相等。
. \8 R5 x0 E7 V3 @" qAxis equel
设置坐标轴标记间距相等;
; Q# h' h) p. r* eAxis equel tight
;设置图形以紧缩方式显示。. H& q2 u$ T4 i: r
5
.图形窗口
4 y+ }4 ]% c! c9 t& Xfigure(2);%
以第二个图形窗口作为当前图形输出的窗口;4 `# e: A7 x( A* e
subplot(m,n,i);%
分成m×n个小区域,I指定当前绘图区域;
/ ?, _1 z; f' A- O  B$ }colordef
颜色;%如whiteblack等,设置绘图背景颜色。2 q7 c; i; ?* i5 g' x9 b% `
6
.图形标注( O( Z0 W/ X5 X; G
Matlab
提供了几个函数用于图形的标注:: F9 R8 |8 i5 I' a0 p3 t( o
函数名功能描述. ~9 b/ a( B7 O# E1 k# m4 _
Title
添加图形标题$ Z3 Y4 R/ \  m
Xlabel
xlabelzlabel添加XYZ轴标注
  j- m# ^* R& \: o% sLegend
在图形中添加图例. m+ a+ l7 a! ~( {1 P8 Q2 y! J
Text
在指定位置显示文本
' H, W# M0 L/ S  I2 f: pGtext
使用鼠标将指定文本放在图形中的位置
/ ?6 ?9 J. p. B3 N# }* {
如下为添加标题,坐标轴标注实例:" C% M8 p( O0 F( y& p1 F
>> t=0:i/100:i*2;
: h7 t1 E) e% V! \/ ^* S>> plot(t,sin(t));7 V0 H: ^+ ^. G% X: z: F1 D! |
>> xlabel('t=0 to 2pi','Fontsize',16);
" Z4 e9 i" n) Z7 Z4 M8 J$ |4 a' q>> ylabel('sin(t)','fontsize',16);# Q, T1 M, r. {) ]
>> title('Value of the Sine from Zero to Two pi','fontsize',16)
, V/ A0 @) ?7 q
注:标注时:pi显示成希腊字母,alphabeta! p6 w7 x# K1 |4 Y
在图形中添加标注与图例,如下:
" Q$ B( D' b9 [>> t=0:i/100:i*2;: k3 o) |6 M4 a1 x1 e+ J3 q6 `
>> plot(t,sin(t));4 d* d/ I, q3 [0 l+ M9 [
>> xlabel('t=0 to 2pi','Fontsize',16);
1 r) L8 @! l$ @$ s- y>> ylabel('sin(t)','fontsize',16);
! c( {  h/ r- U>> title('Value of the Sine from Zero to Two pi','fontsize',16)/ t; s3 K* \" F( x* d+ k% g
>> text(3*pi/4,sin(3*pi/4),'leftarrow=.707','fontsize',16)
/ {/ M! R6 H% D  l* \9 Y1 [; f, n>> text(pi,sin(pi),'leftarrowsin(t)=0','fontsize',16)
; g1 T2 p6 u" ~7 u% b+ p2 z& j9 v>>text(5*pi/4,sin(5*pi/4),'sin(t)=-.707rightarrow','HorizontalAlignment','right','fontsize',16)
0 K6 O& i6 e! |1 j# E: T>> gtext('graph of function sin(x)')
%可以用鼠标指定字符串所需放设位置。/ G2 z1 k$ x4 I. `5 H9 o
>> H=legend('con','sin',0)
%绘制图例
5 _, B+ N/ ~. R+ j9 }; l 3 r& q- E* \, {' q3 U' Y
  E, M! A* A  i4 t2 J

. h3 R5 R4 x" t3 ^改变坐标轴的显示位置
# p- C% N) g2 Kset(gca, 'XAxisLocation', 'top')8 o, A* A3 o' J# T6 l& N9 Z
set(gca, 'YAxisLocation', 'left')
" D6 c; a5 H" T                    5 h- i8 S9 W: o5 X$ G

5 ]( C  I* ]: q0 ?) I2 Y                                        转载本文请联系原作者获取授权,同时请注明本文来自叶瑞杰科学网博客。
回复

举报 使用道具

相关帖子

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