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

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

Akzeptierte Antwort

teuysjjyq
teuysjjyq am 25 Mai 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

Weitere Antworten (0)

Kategorien

Mehr zu 二维图和三维图 finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!