15

我正在使用plot()函数绘制图表,但默认情况下它不显示轴。

我们如何启用在图表上显示 x=0 和 y=0 的轴?

实际上我的图表是这样的:替代文字

我想要一条对应于y=0的水平线。我怎么得到它?

4

9 回答 9

10

这应该在 Matlab 中工作:

set(gca, 'XAxisLocation', 'origin')

选项有:底部、顶部、原点。

对于 Y 轴:

YAxisLocation; left, right, origin
于 2016-04-01T00:25:48.987 回答
9

默认情况下,绘图确实显示轴,除非您修改了某些设置。尝试以下

hold on; % make sure no new plot window is created on every plot command
axes(); % produce plot window with axes
plot(% whatever your plot command is);
plot([0 10], [0 0], 'k-'); % plot the horizontal line
于 2009-09-29T06:28:58.027 回答
5

穷人的解决方案是简单地绘制线 x=0 和 y=0。您可以调整线条的粗细和颜色以将它们与图表区分开来。

于 2010-08-02T21:58:43.090 回答
4

如果您希望轴看起来更像十字准线,而不是沿着边缘,请尝试Matlab FEX 中的轴中心。

编辑:刚刚注意到Jitse Nielsen在上面的链接中已经指出了这一点。

于 2010-08-02T21:34:39.017 回答
3

我知道这有点晚了,但我的一位同事想出了一些办法:

figure, plot ((1:10),cos(rand(1,10))-0.75,'*-')
hold on
plot ((1:10),zeros(1,10),'k+-')
text([1:10]-0.09,ones(1,10).*-0.015,[{'0' '1'  '2' '3' '4' '5' '6' '7' '8' '9'}])
set(gca,'XTick',[], 'XColor',[1 1 1])
box off
于 2010-05-31T17:36:54.880 回答
3

也许grid on就足够了。

于 2009-09-29T06:29:56.230 回答
2

@Martijn 您的函数调用顺序略有偏差。试试这个:

x=-3:0.1:3;
y = x.^3;
plot(x,y), hold on
plot([-3 3], [0 0], 'k:')
hold off
于 2009-09-29T18:28:43.733 回答
1

受@Luisa 回答的启发,我做了一个函数,axes0

x = linspace(-2,2,101);
plot(x,2*x.^3-3*x+1);
axes0

axes0 的示例输出

您可以按照上面的链接下载该功能并获取更多使用详情

于 2015-12-04T21:57:30.187 回答
-1

最简单的解决方案:

plot([0,0],[0.0], xData, yData);

这会在点 [0,0] 到 [0,0] 之间创建一条不可见的线,并且由于 Matlab 想要包含这些点,因此它将显示轴。

于 2014-11-15T10:27:25.073 回答