画图时,将x轴设置在​原点位置后,数字却在​x轴上方,请问怎么解​决?。

15 views (last 30 days)
sakjaket
sakjaket on 25 May 2023
Answered: teuysjjyq on 25 May 2023
各位大佬,我想要请教一个问题。如下图所示,我在画图的时候,想要将x坐标设置在原点位置,于是用了set(gca,'XAxisLocation','origin')这个命令,出来之后x轴确实在原点位置,但是应该在x轴下方数字却跑到上方去了,请问怎么让数字设置在x轴下方呢?

Accepted Answer

teuysjjyq
teuysjjyq on 25 May 2023
matlab好像不支持修改,你要不将y轴的坐标值设置成一样大,或者就是手动的调整
方法一:
subplot(1,2,1)
plot(-10:5,-10:5);
set(gca,'XAxisLocation','origin')
subplot(1,2,2)
plot(-10:5,-10:5);
ylim([-10 10])
set(gca,'XAxisLocation','origin')
方法二:
%%
x=-10:0.1:10;
y=sin(x);
plot(x,y)
%%
xtick=get(gca,'xtick');
xticklabel=get(gca,'xticklabel');
xlim=get(gca,'xlim');
ytick=get(gca,'ytick');
yticklabel=get(gca,'yticklabel');
ylim=get(gca,'ylim');
set(gca,'xtick',[],'ytick',[],'xcolor','w','ycolor','w','nextplot','add');
% x轴
plot(xlim,[0 0],'k')
% y坐标
plot([0 0],ylim,'k')
% x坐标标签
ylen=(ylim(2)-ylim(1))*0.02;
for i=1:length(xtick)
plot([xtick(i),xtick(i)],[0 ylen])
text(xtick(i)-ylen,-ylen*1.5,xticklabel(i,:))
end
% y坐标标签
xlen=(xlim(2)-xlim(1))*0.02;
for i=1:length(ytick)
plot([0 xlen],[ytick(i),ytick(i)])
text(-xlen*3,ytick(i),yticklabel(i,:))
end

More Answers (0)

Categories

Find more on 二维图和三维图 in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!