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

【Matlab】坐标轴的设置

[复制链接]
使用matlab的绘图函数plot绘图时系统默认设置了一些属性,例如坐标轴字号大小等并根据情况自动设置坐标轴显示的上下限,这些属性可以通过函数灵活改动,此处总结一小部分。
. M7 d' {# ~% A: v, S# @figure;6 D9 s9 g: \% ~# G+ D- ?1 C
%设置坐标轴线宽,加边框,坐标字号
' E( C6 N3 T3 r: N0 V3 ~0 l6 laxes('linewidth',1, 'box', 'on', 'FontSize',16);
( m6 V# z: `! {! T
%设置坐标轴label0 V% |# \6 n. r, D) A
xlabel('
时间(s)','FontSize',16);
1 [, |* @0 t, x0 j7 p8 _* e$ j: aylabel('
压力(pa)','FontSize',16);
6 E! c" O6 M+ z, T# d5 K3 T* `grid on;
6 E% x; \- s- P. ]hold on;
5 J3 R8 @* P# b% d, }plot(ScopeData1.time, ScopeData1.signals.values, 'k', 'linewidth', 1);

- C  P* h1 r9 C0 e+ I%设置坐标轴上下限: G1 G% n# P2 y. A. ?/ J
xlim([0, 0.5]);

( r+ [# L- U$ bylim([5300000, 5800000]);
- e; _; X7 ?( Y5 S4 x. g* g, y' H% u' _: a6 b7 f
MATLAB
操纵坐标轴
( Z8 f1 g6 G- }axis off;        %
去掉坐标轴1 N, ]: y% k, x4 i* y
axis tight;                     %
紧坐标轴. K. ~5 p$ K1 @* }/ c7 P+ I: B2 M
axis equal;                     %
等比坐标轴
! v! n# Z! X6 Naxis([-0.1, 8.1, -1.1, 1.1]);   %
坐标轴的显示范围 3 A( c( R* ]' A* i0 u9 @

; U9 h- @1 J: f( z. n% gca: gca, h=figure(...);
. g. H) T$ s0 U3 _4 Rset(gca, 'XLim',[3 40]);                   % X
轴的数据显示范围1 K$ g1 N2 F' j! P# C) O) M
set(gca, 'XTick',[-3.14,0,3.14] );         % X
轴的记号点
6 X' H5 z6 f  ?, G( w) I; Rset(gca, 'XTicklabel',{'-pi','0','pi'});   % X
轴的记号3 s% Z* h8 m7 h) F
set(gca, 'XTick', []);                     %
清除X轴的记号点
" i6 V5 y; k  j3 }: e) d$ @set(gca, 'XGrid','on');                    % X
轴的网格
4 E! [% O4 i! L: u$ s9 f+ iset(gca, 'XDir','reverse');                %
逆转X  z# S6 G/ ^# {$ G) k& j8 j$ T
set(gca, 'XColor','red');                  % X
轴的颜色
* C3 E  q7 F8 R% `
$ D/ \- X. U1 g5 x! M& U) N3 K  ~, I  I$ l7 M
; h+ l4 f, y3 D
[Matlab]图对象
2 L6 E' w; ]' B " o; U0 s: F0 z/ u# s2 R
首先要了解的是Matlab是面向对象的。最高等级的对象是screen,它定义了figure可以用的最大szie- A1 L+ c$ D1 X, R( C* i+ V# U8 ^
screen
下面是figurefigue就是你画图的时候跳出来的那个新的对话窗口。如果figure变化,screen是不会跟着变化的。但screen变化的话,figure就要跟着变化了。
+ G- I# B- ?9 f5 I. p* Xfigure下面是axesaxes是那个窗口里面你要画的东西。axes的大小和位置取决于figure,如果你放大缩小figure的大小的话,里面的图线也会跟着变化的。
* ]7 l1 \- S2 G! Mplot(j,y,'Marker','+','LineWidth',1.5,'LineStyle',':','Color',[00 1])
; [" z/ Q8 [% h. i: _/ \% 设置坐标轴距离画板边距,左下山下,依次调整图的空白区域。, P! @8 T% x; R& V& A9 b
set (gca,'position',[0.1,0.1,1,1] );

0 \  \5 r5 y+ N8 C8 d; D( y& [ * M1 N) J# J" e: `6 P) {$ H: d
2.matlab画了一张图,投稿时要缩小,缩小后字体就会过小或者发虚。' F% {; S$ f  T" T! _2 P" W
我摸索出比较好的方法是如下的代码:2 ^% \$ ~# W; ~' z" D% c) J4 u
%%%%%%%%%%%%%%%%%%%%%
8 J2 P6 Y% H2 }%plot your figure before
; l4 A. X8 T: ^; Q! }%%%%%%%%%%%%%%%%%%%%%8 o1 e. T, j! w
% figure resize- i6 u3 \* L* W  c& w" @: o( e! u. g
set(gcf,&#39osition',[100 100 260 220]);
' P( y/ \3 ^% V0 D* V0 `/ gset(gca,&#39osition',[.13 .17 .80 .74]);1 C/ e' q/ u( s8 |: t9 h( W
figure_FontSize=8;
  V3 D1 Y  k" C: `4 }, h% sset(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');6 Z. q" r7 |$ m1 G
set(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle');. }& M9 B/ L. M: E& A& h! @- |
set(findobj('FontSize',10),'FontSize',figure_FontSize);
# d6 X6 ]+ J: k2 ^set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);
* m6 N: G3 m  i4 m  d5 n. b
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% y7 x/ C. S3 ~+ W6 {
解释:
+ C! s) I$ J& E( L2 M/ ?: W  Lset(gcf,&#39osition',[100 100 260 220]);- ]# j3 o: H0 ]# M7 r8 I( r
这句是设置绘图的大小,不需要到word里再调整大小。我给的参数,图的大小是175px
' a9 L6 b( j( gset(gca,&#39osition',[.13 .17 .80 .74]);
' c" A' h& W2 x
这句是设置xy轴在图片中占的比例,可能需要自己微调。. [0 z8 f" x5 b( e/ R( G
figure_FontSize=8;
' v/ y- p3 G: c5 r( n; Nset(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');+ B7 {% i9 F# s' w" c
set(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle');# z9 \: w5 c! C6 ^1 q4 @  e
set(findobj('FontSize',10),'FontSize',figure_FontSize);

9 m# a+ x4 J  X1 E( c& N4句是将字体大小改为8号字,在小图里很清晰
! J) o0 t( O" H0 _+ [set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);
. p) X) g2 V. V4 b) c  S: h这句是将线宽改为2
1 C+ X: I& M& r6 M* k' s' }3.设置坐标轴参数
8 B/ j( c+ J% a% K1 p( o
1axis,设置当前轴的坐标范围;+ i3 N+ J9 L# u) b7 L9 k# ?; g1 `
2axes,用指定的特征创建一个新坐标轴;. R- W: `0 w7 J: W
3getset,查询或设置已有轴的各种特性;
( m3 \& W) K  o; {, E
4gca,返回当前轴的句柄。
5 g1 Y' `' I' o. r# i8 n2 T; V
如果图形中有多个坐标轴,在当前轴为最后图形创建的图形的坐标轴。Matlab绘制图形数据时候,会自动选择坐标轴范围,用axis可以设置新的坐标轴的范围,用一个具有四个元素的矢量表示坐标范围,格式为:& _; h7 `; z! I5 d
axis([xmin,xmax,ymin,ymax])
;如果不指定某一个方向范围可以使用inf或-inf表示,则产生半自动坐标轴范围。: ~& i1 M- G. O8 f
对于线性坐标轴,matlab会自动根据数据范围设置等间距的坐标轴数值标记,用set,修改gca变量中xtickytick的属性值,可以自定义坐标轴标记。如. G! o2 S' \% N" y- Z7 R
set
gca,’ytick’,[-0.3:0.1:1];: S/ c! N# s, e& m0 K1 k6 Q
可以使用字符矢量通过修改gca变量中的’XtickLabel’实现标记字符,如:/ `* T! U, g2 \1 O' V' d( x( k
set(gca,’Xtick’,-pi:pi/2:pi);5 ]. Y& N0 k5 M) E: u+ s" t% u
set(gca,’XtickLabel’,{‘-pi’,’-pi/2’,’0’,’pi/2’,’pi’};
$ E3 B0 |6 f5 m( eAxis square
设置两坐标轴长度成相等。0 s5 j' E7 K2 l5 x" Q2 O2 m7 C# a! x, p
Axis equel
设置坐标轴标记间距相等;2 V/ K, p. z5 @* `
Axis equel tight
;设置图形以紧缩方式显示。* B, X: b+ d) B8 o6 k5 s4 k8 w
5
.图形窗口
" E8 a0 E7 f. Lfigure(2);%
以第二个图形窗口作为当前图形输出的窗口;) ]7 v* j+ h: @5 d9 u, d. r3 ~3 _
subplot(m,n,i);%
分成m×n个小区域,I指定当前绘图区域;
( P  e/ m7 S7 j5 Scolordef
颜色;%如whiteblack等,设置绘图背景颜色。/ D% @5 P; R- a% r& }) \% Z
6
.图形标注# C1 l! f$ d% c/ }4 H: o
Matlab
提供了几个函数用于图形的标注:
  l# x" p! x. G8 v9 F
函数名功能描述
3 I& A; s4 \$ z, ^2 ?Title
添加图形标题% T$ E3 c: l& {! s8 m
Xlabel
xlabelzlabel添加XYZ轴标注
& F+ \3 K: ]0 }3 y+ xLegend
在图形中添加图例
8 N3 g" K8 W% M8 tText
在指定位置显示文本
( q4 |4 [: X7 D- [6 GGtext
使用鼠标将指定文本放在图形中的位置
# X" ]% e8 @  A3 K$ V4 ]6 }4 z, m; e& I
如下为添加标题,坐标轴标注实例:
  p) ?; u4 Z' Z. E>> t=0:i/100:i*2;. J! y: J8 L4 q, S* J
>> plot(t,sin(t));
* E3 |6 r8 U: |3 h/ `2 L>> xlabel('t=0 to 2pi','Fontsize',16);
" t# J  ^( y; E  [5 b>> ylabel('sin(t)','fontsize',16);0 u! ?, W9 ~9 v) p5 O
>> title('Value of the Sine from Zero to Two pi','fontsize',16)) Z& W6 o4 J0 d6 v& ^9 n
注:标注时:pi显示成希腊字母,alphabeta1 E; W/ `" Q0 B) [
在图形中添加标注与图例,如下:
; _/ T* U9 O) B' R' ?# O>> t=0:i/100:i*2;
: b4 Z5 v9 D! K+ g- M: m>> plot(t,sin(t));$ I/ n8 t: b) L. F$ g* S: c1 l
>> xlabel('t=0 to 2pi','Fontsize',16);- o  v: n$ a- d+ `% e
>> ylabel('sin(t)','fontsize',16);
  I* a; c/ Y" Q+ W5 z! `, t>> title('Value of the Sine from Zero to Two pi','fontsize',16)  w' m# q# B/ m0 ?+ Y
>> text(3*pi/4,sin(3*pi/4),'leftarrow=.707','fontsize',16)3 _9 B) t' [# |0 V, r
>> text(pi,sin(pi),'leftarrowsin(t)=0','fontsize',16), U' g1 H% O! v
>>text(5*pi/4,sin(5*pi/4),'sin(t)=-.707rightarrow','HorizontalAlignment','right','fontsize',16)
$ B9 Q! z4 e: c$ i% m5 i>> gtext('graph of function sin(x)')
%可以用鼠标指定字符串所需放设位置。; u3 l. ^" X# }7 h- a# R3 a! |* |
>> H=legend('con','sin',0)
%绘制图例! [' @! O  \1 b) J

) b2 C4 \7 H9 q' o9 u0 M/ k" t& L
; I$ \. [* D+ Z6 n! {0 W& y. q2 X1 D2 F5 O( ?6 a' l! x
改变坐标轴的显示位置
/ H- N/ u: W6 Y& ?set(gca, 'XAxisLocation', 'top')
3 Y  x' u/ ~0 g8 }, {set(gca, 'YAxisLocation', 'left')* ]; M' I$ l" C
                    
1 w! l0 F1 [' {" o5 Z- Q$ H$ ~! L% V& Y0 m, k. q
                                        转载本文请联系原作者获取授权,同时请注明本文来自叶瑞杰科学网博客。
回复

举报 使用道具

相关帖子

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