gpt4 book ai didi

Matlab - 将 Y 轴移动到原点?

转载 作者:行者123 更新时间:2023-12-04 18:02:53 25 4
gpt4 key购买 nike

我知道 Matlab 有时不是创建“奇特”绘图的最佳工具,但由于我的大学需要它,所以我没有太多选择。

我想将下例的 Y 轴和“箭头”注释移动到 x=0。

X = -pi/2 : 0.001 : pi/2;
Y = cos(X).^2;
plot(X, Y,'Color',[0,0,1]);

ylim([0 1.2]);
set(gca, 'YTick',[1.2],'yticklabel',{'{\color[rgb]{0,0,1}X(f)}'});
set(gca, 'XTick',[-pi/2,pi/2],'xticklabel',{'-f_{max}' 'f_{max}'});

set(gca,'fontsize',16);
box off;
grid off;
fig_pos=get(gca,'Position');
xp1=fig_pos(1);
xp2=fig_pos(1)+fig_pos(3)+0.02;
yp1=fig_pos(2);
yp2=fig_pos(2)+fig_pos(4)+0.03;
a1=annotation('arrow', [xp1 xp2],[yp1 yp1]);
a2=annotation('arrow', [xp1 xp1],[yp1 yp2]);

enter image description here

我尝试使用 FileExchange 的 PlotAxesAtOrigin 和轴中心,但由于注释,这无法正常工作。

有谁知道如何实现这一点?

谢谢你的帮助,克劳斯!

最佳答案

移动 y 轴箭头注释非常简单。只需将最后一行替换为

a2=annotation('arrow', fig_pos(1)+fig_pos(3)/2*[1 1],[yp1 yp2]);

移动 X(f) 的问题稍微多一些,因为您不能再使用 Ytick 标签。将第 5 行替换为

set(gca, 'YTick','');

并添加以下行

text(0.1,1.2,'{\color[rgb]{0,0,1}X(f)}','FontSize',16);

在代码的末尾。

无法移除仍然位于轴左侧的黑色垂直线,因此您需要用另一个注释遮盖它。有点像

annotation('line',fig_pos(1)*[1 1],[fig_pos(2) fig_pos(2)+fig_pos(4)],...
'Color',get(gcf,'Color'),'LineWidth',2);

会做。

这给了

enter image description here

最后要注意的是,您创建了一个名为 fig_pos 的变量。这是误导性的,因为它包含轴位置(在图形上),不是图形位置(它相对于显示器左下角的位置)。您的变量实际上应该称为 axis_pos

关于Matlab - 将 Y 轴移动到原点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31977180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com