失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > matlab 坐标轴刻度朝外_Matlab中将坐标轴放在原点位置

matlab 坐标轴刻度朝外_Matlab中将坐标轴放在原点位置

时间:2024-02-19 22:19:05

相关推荐

matlab 坐标轴刻度朝外_Matlab中将坐标轴放在原点位置

转载一篇文章,原文链接:/xiaobiyin9140/article/details/84519419​

需求

使用matlab画图:设置y轴位置,使y轴在x轴的中间

示例

画一个sigmoid函数

MATLAB代码

x=-10:0.1:10; y=sigmf(x,[1 0]); plot(x,y)

得到的图像结果为:

怎么将Y轴放在中间呢,而不是在左边?即如何得到这种效果呢?

方法

新建一个函数,命名为:xyplot.m

运行完代码

x=-10:0.1:10; y=sigmf(x,[1 0]); plot(x,y)

之后,在命令行窗口输入下述代码即可:

xyplot

附上函数xyplot的代码并在其中做了必要的注释,可以实现图像特性的改变

% 本函数的目的是将坐标轴的中心放在原点位置

function xyplot(x,y)

% PLOT

%if函数是为了判断变量是否有两个,如果是则plot(x,y),如果不是则输出 Not 2D Data set !

if nargin>0

if nargin == 2

plot(x,y);

else

display(' Not 2D Data set !')

end

end

hold on;

% GET TICKS目的是得到原始图像的刻度

X=get(gca,'Xtick');

Y=get(gca,'Ytick');

% GET LABELS目的是得到原始图像的刻度上的数值

XL=get(gca,'XtickLabel');

YL=get(gca,'YtickLabel');

% GET OFFSETS

Xoff=diff(get(gca,'XLim'))./40;

Yoff=diff(get(gca,'YLim'))./40;

% DRAW AXIS LINEs

% %以下两行是根据xy的坐标绘制交点在原点的两条直线,作为改变图形之后的图像的轴,所以改变线的特性就是改变轴的特性,比如线宽等

plot(get(gca,'XLim'),[0 0],'k','LineWidth',1.2);%LineWidth可以改变新轴的线宽

plot([0 0],get(gca,'YLim'),'k','LineWidth',1.2);%LineWidth可以改变新轴的线宽

% Plot new ticks绘制新轴上刻度,刻度的大小就是xoff和yoff,同样改变下面两个plot的特性可以改变刻度的特性

for i=1:length(X)

plot([X(i) X(i)],[0 Yoff],'-k','LineWidth',1.2);%LineWidth可以改变新轴的线宽

end;

for i=1:length(Y)

plot([Xoff, 0],[Y(i) Y(i)],'-k','LineWidth',1.2);%LineWidth可以改变新轴的线宽

end;

% ADD LABELS添加新坐标轴的刻度上的值,通过改变数字2,3可以改变值的位置,可以改变值的字体等特性

text(X,zeros(size(X))-2.*Yoff,XL,'FontSize',20);

text(zeros(size(Y))-3.*Xoff,Y,YL,'FontSize',20);

box off;%去掉上边和右边的轴

% axis square;

axis off;%去掉原始图像的轴

set(gcf,'color','w');%图片背景为白色

如果觉得《matlab 坐标轴刻度朝外_Matlab中将坐标轴放在原点位置》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。