我知道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]);
我尝试使用FileExchange的PlotAxesAtOrigin和axiscenter,但由于注释,这不能正常工作。
有没有人知道如何使这项工作?
谢谢你的帮助,Klaus!
答案 0 :(得分:1)
移动y轴箭头注释是直截了当的。只需用
替换最后一行a2=annotation('arrow', fig_pos(1)+fig_pos(3)/2*[1 1],[yp1 yp2]);
移动X(f)
稍微有问题,因为您无法再使用Ytick标签。
用
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);
会做的。
这给了
最后要注意的是,您创建了一个名为fig_pos
的变量。这是误导性的,因为它包含轴位置(在图上),不图形位置(这是它相对于显示器左下角的位置)。您的变量应该被称为axis_pos
。
答案 1 :(得分:0)
您可以使用"轴"命令,如果你知道fmax的值。轴([xmin xmax ymin ymax])