JerryYe的个人博客分享 http://blog.sciencenet.cn/u/JerryYe

博文

【Matlab】坐标轴的设置

已有 78893 次阅读 2017-1-15 21:02 |个人分类:Matlab|系统分类:科研笔记| MATLAB, 坐标轴

使用matlab的绘图函数plot绘图时系统默认设置了一些属性,例如坐标轴字号大小等并根据情况自动设置坐标轴显示的上下限,这些属性可以通过函数灵活改动,此处总结一小部分。

figure;

%设置坐标轴线宽,加边框,坐标字号
axes('linewidth',1, 'box', 'on', 'FontSize',16);

%设置坐标轴label
xlabel('
时间(s)','FontSize',16);
ylabel('
压力(pa)','FontSize',16);
grid on;
hold on;
plot(ScopeData1.time, ScopeData1.signals.values, 'k', 'linewidth', 1);

%设置坐标轴上下限
xlim([0, 0.5]);

ylim([5300000, 5800000]);

MATLAB
操纵坐标轴
axis off;        %
去掉坐标轴
axis tight;                     %
紧坐标轴
axis equal;                     %
等比坐标轴
axis([-0.1, 8.1, -1.1, 1.1]);   %
坐标轴的显示范围

% gca: gca, h=figure(...);
set(gca, 'XLim',[3 40]);                   % X
轴的数据显示范围
set(gca, 'XTick',[-3.14,0,3.14] );         % X
轴的记号点
set(gca, 'XTicklabel',{'-pi','0','pi'});   % X
轴的记号
set(gca, 'XTick', []);                     %
清除X轴的记号点
set(gca, 'XGrid','on');                    % X
轴的网格
set(gca, 'XDir','reverse');                %
逆转X
set(gca, 'XColor','red');                  % X
轴的颜色


[Matlab]图对象

首先要了解的是Matlab是面向对象的。最高等级的对象是screen,它定义了figure可以用的最大szie
screen
下面是figurefigue就是你画图的时候跳出来的那个新的对话窗口。如果figure变化,screen是不会跟着变化的。但screen变化的话,figure就要跟着变化了。

figure下面是axesaxes是那个窗口里面你要画的东西。axes的大小和位置取决于figure,如果你放大缩小figure的大小的话,里面的图线也会跟着变化的。

plot(j,y,'Marker','+','LineWidth',1.5,'LineStyle',':','Color',[00 1])

% 设置坐标轴距离画板边距,左下山下,依次调整图的空白区域。
set (gca,'position',[0.1,0.1,1,1] );

2.matlab画了一张图,投稿时要缩小,缩小后字体就会过小或者发虚。

我摸索出比较好的方法是如下的代码:

%%%%%%%%%%%%%%%%%%%%%

%plot your figure before

%%%%%%%%%%%%%%%%%%%%%

% figure resize
set(gcf,'Position',[100 100 260 220]);
set(gca,'Position',[.13 .17 .80 .74]);
figure_FontSize=8;
set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');
set(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle');
set(findobj('FontSize',10),'FontSize',figure_FontSize);
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%

解释:

set(gcf,'Position',[100 100 260 220]);
这句是设置绘图的大小,不需要到word里再调整大小。我给的参数,图的大小是175px

set(gca,'Position',[.13 .17 .80 .74]);
这句是设置xy轴在图片中占的比例,可能需要自己微调。

figure_FontSize=8;
set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');
set(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle');
set(findobj('FontSize',10),'FontSize',figure_FontSize);

4句是将字体大小改为8号字,在小图里很清晰

set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);

这句是将线宽改为2

3.设置坐标轴参数
1axis,设置当前轴的坐标范围;
2axes,用指定的特征创建一个新坐标轴;
3getset,查询或设置已有轴的各种特性;
4gca,返回当前轴的句柄。
如果图形中有多个坐标轴,在当前轴为最后图形创建的图形的坐标轴。Matlab绘制图形数据时候,会自动选择坐标轴范围,用axis可以设置新的坐标轴的范围,用一个具有四个元素的矢量表示坐标范围,格式为:
axis([xmin,xmax,ymin,ymax])
;如果不指定某一个方向范围可以使用inf或-inf表示,则产生半自动坐标轴范围。
对于线性坐标轴,matlab会自动根据数据范围设置等间距的坐标轴数值标记,用set,修改gca变量中xtickytick的属性值,可以自定义坐标轴标记。如
set
gca,’ytick’,[-0.3:0.1:1];
可以使用字符矢量通过修改gca变量中的’XtickLabel’实现标记字符,如:
set(gca,’Xtick’,-pi:pi/2:pi);
set(gca,’XtickLabel’,{‘-pi’,’-pi/2’,’0’,’pi/2’,’pi’};
Axis square
设置两坐标轴长度成相等。
Axis equel
设置坐标轴标记间距相等;
Axis equel tight
;设置图形以紧缩方式显示。
5
.图形窗口
figure(2);%
以第二个图形窗口作为当前图形输出的窗口;
subplot(m,n,i);%
分成m×n个小区域,I指定当前绘图区域;
colordef
颜色;%如whiteblack等,设置绘图背景颜色。
6
.图形标注
Matlab
提供了几个函数用于图形的标注:
函数名功能描述
Title
添加图形标题
Xlabel
xlabelzlabel添加XYZ轴标注
Legend
在图形中添加图例
Text
在指定位置显示文本
Gtext
使用鼠标将指定文本放在图形中的位置
如下为添加标题,坐标轴标注实例:
>> t=0:i/100:i*2;
>> plot(t,sin(t));
>> xlabel('t=0 to 2pi','Fontsize',16);
>> ylabel('sin(t)','fontsize',16);
>> title('Value of the Sine from Zero to Two pi','fontsize',16)
注:标注时:pi显示成希腊字母,alphabeta
在图形中添加标注与图例,如下:
>> t=0:i/100:i*2;
>> plot(t,sin(t));
>> xlabel('t=0 to 2pi','Fontsize',16);
>> ylabel('sin(t)','fontsize',16);
>> title('Value of the Sine from Zero to Two pi','fontsize',16)
>> text(3*pi/4,sin(3*pi/4),'leftarrow=.707','fontsize',16)
>> text(pi,sin(pi),'leftarrowsin(t)=0','fontsize',16)
>>text(5*pi/4,sin(5*pi/4),'sin(t)=-.707rightarrow','HorizontalAlignment','right','fontsize',16)
>> gtext('graph of function sin(x)')
%可以用鼠标指定字符串所需放设位置。
>> H=legend('con','sin',0)
%绘制图例


改变坐标轴的显示位置

set(gca, 'XAxisLocation', 'top')

set(gca, 'YAxisLocation', 'left')



https://blog.sciencenet.cn/blog-2824237-1027799.html

上一篇:【Matlab】如何给colorbar添加单位
下一篇:【Matlab】如何设置bar的颜色
收藏 IP: 219.146.245.*| 热度|

1 吴泽斌

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-24 11:46

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部