Matlab中如何交换坐标轴和标签

6

我找不到方法。如何在matlab中设置坐标轴和标签,使它们在零点交叉,并且标签位于轴的下方而不是绘图区域的左侧/底部?

如果我没有表达清楚 - 我只想让绘图看起来像我们在学校里画的那样。坐标轴交叉,四个象限,标签位于轴的正下方,曲线...就像它走的那样。

有人知道如何设置吗?


1
澄清一下,Idigas希望绘图看起来像http://upload.wikimedia.org/wikipedia/commons/3/37/IdempotentCosineAngle.jpg(我想)。 - Jitse Niesen
@Jitse Niesen - 没错。当我在寻找图片时,你已经找到了它。 - Rook
2个回答

7

@Idigas:我现在明白你想要什么了。我已经相应地更新了我的答案。 - gnovice
嗯,是的,我找到了第一个(“楼上”的图像就是从中得来的。但是当我操作它时,我一直遇到问题)。它们两个对我来说都像是变通方法...你是想告诉我Matlab通常不支持这样的东西吗?...我会看看第二个的。 - Rook
@Idigas:目前 MATLAB 中没有这样的内置功能。你要么自己创建这样的东西,要么找到已经有此功能的人发布的 FEX 条目。 ;) - gnovice
好的,知道了。无论如何,我设法让第二个工作了,所以现在只能这样了。感谢您帮我澄清这个问题。 - Rook

3
截至Matlab R2015b版本,可以通过将轴属性 XAxisLocationYAxisLocation 设置为origin来实现此目标。
换句话说,
x = linspace(-5,5);
y = sin(x);
plot(x,y)

ax = gca;
ax.XAxisLocation = 'origin';
ax.YAxisLocation = 'origin';

Axes through origin, from Matlab official documentation

以下示例摘自MATLAB官方文档:


3
+1,需要注意的是,它只适用于2D视图。一个相关问题询问了3D轴的情况,在这种情况下,上述属性没有任何效果。 - Amro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接