首页 > 编程语言 > matlab xlabel位置的设置方式
2021
07-08

matlab xlabel位置的设置方式

xlabel(‘time',‘FontSize',12);

如果没有设置位置,默认是在中间

在xlabel中也有position用法

xlabel(‘time',‘position',[900,1870],‘FontSize',12);

此时‘time'在你设置的位置

还有一种用法是类似图像的用法

pos=axis;%取得当前坐标轴的范围,即[xmin xmax ymin ymax]
xlabel(‘time',‘FontSize',12, ‘Position',[pos(2) pos(3)])

x=0:pi/50:2*pi;
y=sin(x);
plot(x,y);
pos=axis;%取得当前坐标轴的范围,即[xmin xmax ymin ymax]
xlabel('x轴','position',[pos(2) 1.15*pos(3)]);%设置x轴标签的文本在图的右下方,1.15这个值根据自己的需要可以调整
形成的图

补充:Matlab作图实例——xlabel,ylabel,title,text,plot,patch,datetime等的应用

做线性图,并用变量标记每个点

所用数据如下:

代码如下:

clear
clc
format compact
format shortG 
T = readtable('repayment_schedule.xlsx','ReadVariableNames',true)
T.time=datetime(datestr(T.time,'yyyy.mm.dd'),'InputFormat','yyyy.MM.dd',...
    'format','yyyy.MM.dd')
p=plot(T.time,T.m_per_month,T.time,T.m_residue)
p(1).Marker='o'
p(2).Marker='*'
box off
%让y轴不用科学计数法显示
h=gca
y_val=h.YTick
y_str=string(y_val) %等价于y_str=num2str(y_val')
h.YTickLabel=y_str
%横轴日期显示设置
h.XTick=T.time
xtickangle(45) %让x轴的标签逆时针旋转45度
%画垂直虚线
hold on
p1=plot([datetime(2018,11,20) datetime(2018,11,20)],...
    [0 30830],'Color',[0.6 0.6 0.6],'LineStyle','--')
p2=plot([datetime(2018,12,20) datetime(2018,12,20)],...
    [0 26434],'Color',[0.6 0.6 0.6],'LineStyle','--')
p3=plot([datetime(2019,01,20) datetime(2019,01,20)],...
    [0 22038],'Color',[0.6 0.6 0.6],'LineStyle','--')
p4=plot([datetime(2019,02,20) datetime(2019,02,20)],...
    [0 17641],'Color',[0.6 0.6 0.6],'LineStyle','--')
p5=plot([datetime(2019,03,20) datetime(2019,03,20)],...
    [0 13245],'Color',[0.6 0.6 0.6],'LineStyle','--')
p6=plot([datetime(2019,04,20) datetime(2019,04,20)],...
    [0 8849],'Color',[0.6 0.6 0.6],'LineStyle','--')
p7=plot([datetime(2019,05,20) datetime(2019,05,20)],...
    [0 4452.8],'Color',[0.6 0.6 0.6],'LineStyle','--')
hold off
%标注每个点
str1=string(T.m_per_month)
str2=string(T.m_residue)
text(T.time,T.m_per_month-1200,str1,'Color',[0 0.447 0.741],...
    'HorizontalAlignment','center')
text(datetime(datenum(T.time)+2,'ConvertFrom','datenum'),...
    T.m_residue+1100,str2,...
    'Color',[0.85 0.325 0.098],...
    'HorizontalAlignment','left')
%图例
legend([p(1) p(2)],{'每月还款金额','每月还款后剩余总本息'},...
    'Location','northeast','NumColumns',1)
%各个标题
xlabel('还款时间')
ylabel('还款金额')
title({'GGG还款计划';'2018.12.20-2019.06.20'})
print('GGG还款计划','-dpdf')
%将数据再写入excel
% writetable(T,'test.xlsx','WriteVariableNames',true)

做出的图如下:

画线形函数图,填充一部分并画网格

相应代码为:

%填充并画网格
clear
clc
v1 = [0 0; 4 0; 4 4;0 4];
f1 = [1 2 3 4];
figure
patch('Faces',f1,'Vertices',v1,...
    'EdgeColor',[0.75 0.75 0.75],'FaceColor',[0.75 0.75 0.75]);
g=gca
g.XTick=[0:4]
g.YTick=[0:4]
g.XLim=[0 4.5]
g.YLim=[0 4.5]
grid on
g.Layer = 'top';
g.GridColor=[1 1 1]
g.GridLineStyle='--'
g.GridAlpha = 1
axis square
%挖洞
v2 = [1 1;2 1;2 2;1 2];
f2 = [1 2 3 4];
patch('Faces',f2,'Vertices',v2,...
    'EdgeColor',[0.75 0.75 0.75],'FaceColor',[1 1 1]);
%画函数图
hold on
f1=@(t) 4*t-4
f2=@(t) 0.25*t+1
f1p=fplot(f1,[1 2],'k','LineWidth',1,'DisplayName','X的策略')
f2p=fplot(f2,[0 4],'--k','LineWidth',1,'DisplayName','Y的策略')
xlabel('X的策略')
ylabel('Y的策略')
legend([f1p f2p],{},'NumColumns',2,'FontSize',10)
%导出为PDF
% saveas(gcf,'qiyan.pdf')
print('qiyan','-dpdf')

做出的图如下

以上为个人经验,希望能给大家一个参考,也希望大家多多支持自学编程网。

编程技巧