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

【Matlab】坐标轴的设置

[复制链接]
使用matlab的绘图函数plot绘图时系统默认设置了一些属性,例如坐标轴字号大小等并根据情况自动设置坐标轴显示的上下限,这些属性可以通过函数灵活改动,此处总结一小部分。
+ {7 L% i& g+ bfigure;* t" H+ g' F& C$ \% ], n
%设置坐标轴线宽,加边框,坐标字号
! {0 ]- J; s: t+ xaxes('linewidth',1, 'box', 'on', 'FontSize',16);
) m/ V4 R5 |: v! f6 C1 O- q
%设置坐标轴label! M3 F6 {# Q+ E8 h: [7 v7 M
xlabel('
时间(s)','FontSize',16);" F. s$ |% A, U1 Z1 O3 s
ylabel('
压力(pa)','FontSize',16);
# J1 C4 _2 w/ G& A2 s' d. |grid on;2 y, V" _: E/ o# F
hold on;$ t3 B2 \( Z2 C- p& d
plot(ScopeData1.time, ScopeData1.signals.values, 'k', 'linewidth', 1);

. O7 J4 C* p  A" ]4 q6 h%设置坐标轴上下限3 B3 ?3 Y" b8 W8 v
xlim([0, 0.5]);
& f+ x4 _9 V( X1 _
ylim([5300000, 5800000]);; E" P$ a9 L9 z& i( J

6 `! z7 |3 ^+ @/ ZMATLAB
操纵坐标轴7 P- w, |; s+ f, ~
axis off;        %
去掉坐标轴: P5 P8 E" Y2 X6 ^5 a5 n7 h% s
axis tight;                     %
紧坐标轴
8 X, `# d; B7 H# Zaxis equal;                     %
等比坐标轴
% u, @* l4 G7 [, {3 _. Maxis([-0.1, 8.1, -1.1, 1.1]);   %
坐标轴的显示范围
3 I0 }* {' T2 ~- a" s; G5 J
3 w2 I" b- m4 G; K% n  y% gca: gca, h=figure(...);8 o7 @# G# f' A( i3 i& d
set(gca, 'XLim',[3 40]);                   % X
轴的数据显示范围
) Q0 r$ p/ ~. d& k0 N1 T" E2 Pset(gca, 'XTick',[-3.14,0,3.14] );         % X
轴的记号点
* s; d1 u, ]% m, f& I! T4 Vset(gca, 'XTicklabel',{'-pi','0','pi'});   % X
轴的记号
4 s, @  d% z" N: @set(gca, 'XTick', []);                     %
清除X轴的记号点* y4 W5 V! K# `0 H0 i
set(gca, 'XGrid','on');                    % X
轴的网格8 v4 A+ d2 K, z; o
set(gca, 'XDir','reverse');                %
逆转X* e: ~% [% Y0 r
set(gca, 'XColor','red');                  % X
轴的颜色
. V2 F2 R1 l* K* a. W& v: s$ Z) \2 Y' f# {  O
5 a. _0 K; {9 G9 v7 _
. C7 n- V1 d+ X' ^) M1 {* S' I  p  ^
[Matlab]图对象4 z7 Q$ H  n. _
  a! a% w9 ^: i# f' X! i
首先要了解的是Matlab是面向对象的。最高等级的对象是screen,它定义了figure可以用的最大szie6 U) I: n, N  U+ H
screen
下面是figurefigue就是你画图的时候跳出来的那个新的对话窗口。如果figure变化,screen是不会跟着变化的。但screen变化的话,figure就要跟着变化了。- o- b# e0 D4 z; o3 o1 x  P
figure下面是axesaxes是那个窗口里面你要画的东西。axes的大小和位置取决于figure,如果你放大缩小figure的大小的话,里面的图线也会跟着变化的。
1 \/ _) ~  j/ V' S1 Bplot(j,y,'Marker','+','LineWidth',1.5,'LineStyle',':','Color',[00 1])
5 t# O9 s  L, a- K+ l% 设置坐标轴距离画板边距,左下山下,依次调整图的空白区域。
( A$ K9 d3 a3 j: j, M  I) a* Sset (gca,'position',[0.1,0.1,1,1] );

2 R. m/ l2 t+ j& N9 q' B  K
6 H3 ]& Z  j8 f3 p1 h9 L! t) h% p+ ?2.matlab画了一张图,投稿时要缩小,缩小后字体就会过小或者发虚。5 E0 o5 c& @, s  V5 y9 w1 H
我摸索出比较好的方法是如下的代码:
7 ^  f0 P: ~. x: Y- F8 v%%%%%%%%%%%%%%%%%%%%%
0 h% G3 P, L! j: c/ f4 n$ [% S%plot your figure before
1 h' I. v: T2 |& W$ n5 d- h" O. Z%%%%%%%%%%%%%%%%%%%%%7 M2 j" j/ a4 B
% figure resize
, {) E$ i0 z3 ]set(gcf,&#39osition',[100 100 260 220]);0 ~5 H9 W5 ]; O  q
set(gca,&#39osition',[.13 .17 .80 .74]);
' H  f7 R3 y3 |8 m! ?figure_FontSize=8;. e: _7 b2 e- c, a0 d% U  {
set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');
7 {. s, t% w. }, U3 C) Eset(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle');6 X9 x- u6 Y1 h6 b" Q3 O# N
set(findobj('FontSize',10),'FontSize',figure_FontSize);
9 v# }* y1 p$ lset(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);

# v9 p* y1 T9 T%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 U8 W5 Y  k: c& h- ^6 h2 G/ ^; f
解释:
1 U: B. W' c3 u" y. w9 ]set(gcf,&#39osition',[100 100 260 220]);* C, m, ~% o1 N1 t& P
这句是设置绘图的大小,不需要到word里再调整大小。我给的参数,图的大小是175px3 Z$ a# u; `: h, k# y7 ^
set(gca,&#39osition',[.13 .17 .80 .74]);6 d' m2 Y8 C. X% n1 k3 c; y, h, _4 n
这句是设置xy轴在图片中占的比例,可能需要自己微调。
4 Z: A" Z8 V8 A+ h( Bfigure_FontSize=8;
4 z, O$ [. N  G, q7 rset(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');! v+ n4 t! L4 d/ x  G& b& L
set(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle');
2 m' m  N5 u4 i! ]set(findobj('FontSize',10),'FontSize',figure_FontSize);
+ ~) \2 h* w' S5 F7 B7 b
4句是将字体大小改为8号字,在小图里很清晰
+ B1 G0 }& i- Qset(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);
" T1 B5 s5 f* t$ T8 h: n& Z+ Y! F这句是将线宽改为2
5 n- Y* T+ D1 s$ n/ l3.设置坐标轴参数$ N5 E2 v4 u. F6 C# K+ {
1axis,设置当前轴的坐标范围;& M- s7 Y( \# A5 @8 Q, ]+ A
2axes,用指定的特征创建一个新坐标轴;
/ k: }' j3 F4 s" K; R* _3 L+ i6 I& h5 H- b
3getset,查询或设置已有轴的各种特性;
" R3 Y( f/ `, x" Z3 Y$ E
4gca,返回当前轴的句柄。
$ q( M& F7 ~# w
如果图形中有多个坐标轴,在当前轴为最后图形创建的图形的坐标轴。Matlab绘制图形数据时候,会自动选择坐标轴范围,用axis可以设置新的坐标轴的范围,用一个具有四个元素的矢量表示坐标范围,格式为:
$ N" Q" ^, n1 |6 R& Iaxis([xmin,xmax,ymin,ymax])
;如果不指定某一个方向范围可以使用inf或-inf表示,则产生半自动坐标轴范围。
9 R, z9 j! M) K$ p3 V; W! u
对于线性坐标轴,matlab会自动根据数据范围设置等间距的坐标轴数值标记,用set,修改gca变量中xtickytick的属性值,可以自定义坐标轴标记。如+ i& F3 k4 r9 Y/ |
set
gca,’ytick’,[-0.3:0.1:1];
/ p' s( i1 L. S% i0 i
可以使用字符矢量通过修改gca变量中的’XtickLabel’实现标记字符,如:
; n  s  E# ]1 s) R/ x4 q# Lset(gca,’Xtick’,-pi:pi/2:pi);
7 v+ ]- |6 i  t; N; aset(gca,’XtickLabel’,{‘-pi’,’-pi/2’,’0’,’pi/2’,’pi’};
5 `' o3 {, ?. j  M, \" K8 J$ W3 FAxis square
设置两坐标轴长度成相等。4 I. B; ^. I$ O4 o- }& U/ M" q: Z* J
Axis equel
设置坐标轴标记间距相等;' q' S" k- N# @' j3 P4 ~
Axis equel tight
;设置图形以紧缩方式显示。
) u) X% _/ `9 w5
.图形窗口7 }% T8 T+ z( T; c8 C' K5 q
figure(2);%
以第二个图形窗口作为当前图形输出的窗口;2 D6 |) s. y7 f6 t6 q3 \! a( I9 \
subplot(m,n,i);%
分成m×n个小区域,I指定当前绘图区域;
& Y9 g: c! D! D. G; \7 T2 ?colordef
颜色;%如whiteblack等,设置绘图背景颜色。. K" x7 a7 @) g6 z6 f% Q
6
.图形标注4 q: w5 _$ m% w! \* v
Matlab
提供了几个函数用于图形的标注:
# }: d, l& Q  B; U, y) o
函数名功能描述
) D. {! l! }0 Y* P+ |1 I6 vTitle
添加图形标题
+ E; U( h( F2 v/ v# cXlabel
xlabelzlabel添加XYZ轴标注0 f8 f4 o, h3 \( a4 ]
Legend
在图形中添加图例: T" B. G/ G$ o+ d
Text
在指定位置显示文本
# c' R4 v5 v- K; d2 M9 U. cGtext
使用鼠标将指定文本放在图形中的位置' d" m4 ~, a4 U
如下为添加标题,坐标轴标注实例:; H! p" L/ X. ^; }! n6 c* H
>> t=0:i/100:i*2;# N$ x, ^( w& A5 |7 k) @, `4 k
>> plot(t,sin(t));7 l6 h8 [+ Y6 {. Z- ~
>> xlabel('t=0 to 2pi','Fontsize',16);. f4 y+ \, k1 J6 F, H
>> ylabel('sin(t)','fontsize',16);3 j  ?+ }- Y. H$ S, r, B
>> title('Value of the Sine from Zero to Two pi','fontsize',16)9 s1 [# Q2 u2 N) ^' @! R  Y
注:标注时:pi显示成希腊字母,alphabeta  K# w' L; u; d1 O7 m) s! F% i
在图形中添加标注与图例,如下:
- i9 g: a( i. L0 I6 T4 O>> t=0:i/100:i*2;0 i9 L- `6 ^5 e2 {* w& F
>> plot(t,sin(t));
- Y5 Z# b; z& G! m6 _2 g  i! J>> xlabel('t=0 to 2pi','Fontsize',16);+ p) w7 s7 j, U3 B, R
>> ylabel('sin(t)','fontsize',16);/ B4 u) Y4 z# n2 g3 a  }
>> title('Value of the Sine from Zero to Two pi','fontsize',16)7 t8 f$ p- p! d: m# T
>> text(3*pi/4,sin(3*pi/4),'leftarrow=.707','fontsize',16)- p4 c. d+ {; @. a* E
>> text(pi,sin(pi),'leftarrowsin(t)=0','fontsize',16)# ]& `4 u" Y, L
>>text(5*pi/4,sin(5*pi/4),'sin(t)=-.707rightarrow','HorizontalAlignment','right','fontsize',16)
, a. G2 @. T$ F, @>> gtext('graph of function sin(x)')
%可以用鼠标指定字符串所需放设位置。
8 i  n, v2 y3 [2 Q" H' N: k>> H=legend('con','sin',0)
%绘制图例6 O& L) A! K6 E" R3 W

( Q% P1 y2 }  H5 X" d+ G& s4 i' N1 m- L) H
% W$ B9 y1 v: h" L; }* `
改变坐标轴的显示位置
1 @  d3 Z6 m6 i( P# Z  eset(gca, 'XAxisLocation', 'top')
) p: i, W) G. ?$ v) H! [& E8 Y. Qset(gca, 'YAxisLocation', 'left')
3 T0 a9 C2 \$ E& E% b( E9 F3 R/ |                    8 Y% e0 {. M" z2 F
# y+ v3 a- ~/ e  {
                                        转载本文请联系原作者获取授权,同时请注明本文来自叶瑞杰科学网博客。
回复

举报 使用道具

相关帖子

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