matlab画图小记tickdir\YTick\YTick

F5 运行整个程序 F9 运行选中的部分程序

xtick是刻度(小竖线);xticklabel 刻度值(竖线下面的数值)

1、画图,坐标轴上的刻度线如何画在外面?

  

解决:set(gca,'tickdir','out')

2、Matlab如何调整坐标轴刻度间隔?

set(gca,'XTick',0:pi/2:2*pi);设置刻度

set(gca,'YTick',-1:1:1);

set(gca,'XTicklabel',{'0','π/2','π','3π/2','2π'});设置刻度下的标签

axis([0 pi*2 -1 1]);设置图像的显示范围

来自百度百科:https://jingyan.baidu.com/album/4853e1e541a2541909f726a9.html?picindex=3

3、调整刻度值得字体大小

set(gca,'FontSize',15); 

4、调整坐标轴标签的字体类型和大小

YTick('X/m', 'FontSize',15,'color','k','Fontname','Times New Roman','FontAngle','italic','FontWeight','bold'); %斜体,加粗

          

5、如何去除Matlab图形中的边界

有时候需要将Matlab画的图插到文章中,但是Matlab在保存图形的时候,会把整个figure对象全部保存,这样axes之外会有很大的空白。如何只保留axes和必要的说明文本?(例如坐标数值,title等)

Matlab figure说明
       在Matlab中,我们可以分三个层次来访问Matlab的图形:figure层,axes层,object层。对应figure 1的原始图形,figure层是灰色区域以及灰色区域包含的地方,原图中白色底的部分为axes层,白色区域中的线条是object层。这三层都可以使用handle这种东西来访问和操作。每种层次的handle有不同的属性可以设置(set)或者读取(get)。一旦set成功,原图就会发生相应的改变。这里我们的目的是为了让他去掉过多的外围空白区域,可以使用axes的position属性来设置axes的位置,通过使用figure的handel设置其颜色属性来把底色设置成白色。
代码:x = 0:0.01:2*pi; y = sin(x); plot(x,y,'k');

  

做如下处理:将图形背景设置为白色,将图形区域铺满整个figure区域。

设置figure背景为白色

执行如下命令来设置figure的背景为白色。执行之后获得下图所示的图。

set(gcf, 'color', [1 1 1]);

      

去除figure中外围空白区域
    使用axes handle的TightInset属性来获得axes区域需要扩展的最大范围,然后在根据这个来设置axes在figure中的position属性。先执行下面的代码。执行上述代码后,会得到如下的图

margin = get(gca, 'TightInset');
set(gca, 'Position', [0+margin(1) 0+margin(2) 1-margin(1)-margin(3) 1-margin(2)-margin(4)]);

                                            

保存上图中的图像即可获得一个没有过多边界空白的图像了。

关于Position属性。他有四个值分别指示axes区域,[left bottom width height],其中他们的是属于[0,1]的。

关于TightInset属性,他是只读的,标示axes区域在四个方向上为了能包含进必要的文字而向外延伸的最小拓展,取值也在0和1之间。实际上,上述命令中设置的axes就是TightInset的区域大小。
from:https://blog.csdn.net/fallian/article/details/38780797

5、图形框的邮编和上边出现刻度,如何去除?

可通过如下语句将其去掉:

box off
ax2 = axes('Position',get(gca,'Position'),...
           'XAxisLocation','top',...
           'YAxisLocation','right',...
           'Color','none',...
           'XColor','k','YColor','k');
set(ax2,'YTick', []);
set(ax2,'XTick', []);
box on

实例:

%画图研究
x = 0:0.01:2*pi; 
y = sin(x); 
plot(x,y,'k');
%去除figure中外围空白区域,保存图像时无空白区域
set(gcf, 'color', [1 1 1]);
margin = get(gca, 'TightInset');

%去除右侧,上侧的刻度线,但保留边框
set(gca,'box','off','Ytick',[])
box off
ax2 = axes('Position',get(gca,'Position'),...
           'XAxisLocation','top',...
           'YAxisLocation','right',...
           'Color','none',...
           'XColor','k','YColor','k');
set(ax2,'YTick', []);
set(ax2,'XTick', []);
box on
%去除右侧,上侧的刻度线,连同边框一同去除
set(gca, 'Position', [0+margin(1) 0+margin(2) 1-margin(1)-margin(3) 1-margin(2)-margin(4)]);

6、设置坐标轴显示长度

xlim([0 10]);从0到10显示

7、为线加标签

x = -pi:pi/20:pi; 
plot(x,cos(x),'-ro',x,sin(x),'-.b') 
hleg1 = legend('cos_x','sin_x');%按顺序对应

8、 线型、标记、颜色

线型代号表示线型
-实线
虚线
-.点画线
:点线
标记代号表示标记标记代号表示标记
.oo
*星号++
square正方形x××
diamond菱形<

顶点指向左边的三角形

pentagram五角星形>顶点指向右边的三角形
hexagram六角星形^正三角形
none无点v

倒三角形

颜色代号表示颜色
 g绿色
m品红色
b蓝色
c灰色
w白色
r红色
k黑色
y黄色

例:t=0:0.1:2*pi;

y1=sin(t);

y2=cos(t);

y3=sin(t).*cos(t);

plot(t,y1, '-r',t,y2, ':g',t,y3, '*b')

9、怎么在matlab已经用plot画好的图中再加一条水平线

x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)
% 新增代码
xlim=get(gca,'Xlim'); % gca代表此时的绘图区,'Xlim'代表X轴的范围'
hold on
plot(xlim,[0,0],'k-','LineWidth',1)

其中get函数中gca代表此时的绘图区,'Xlim'代表X轴的范围’,得到的图形如下所示:

from:https://blog.csdn.net/qq_42537111/article/details/112896757

此外想在imagesc图像上画线,直接用hold on 即可

figure,imagesc(I);
hold on;
for i=1:length(track)
plot(track(i).t,track(i).f,'k-','LineWidth',1);
end

 

  • 9
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值