我正在使用plot()函数绘制图表,但默认情况下它不显示轴。
我们如何启用在图表上显示 x=0 和 y=0 的轴?
实际上我的图表是这样的:
我想要一条对应于y=0的水平线。我怎么得到它?
这应该在 Matlab 中工作:
set(gca, 'XAxisLocation', 'origin')
选项有:底部、顶部、原点。
对于 Y 轴:
YAxisLocation; left, right, origin
默认情况下,绘图确实显示轴,除非您修改了某些设置。尝试以下
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
穷人的解决方案是简单地绘制线 x=0 和 y=0。您可以调整线条的粗细和颜色以将它们与图表区分开来。
如果您希望轴看起来更像十字准线,而不是沿着边缘,请尝试Matlab FEX 中的轴中心。
编辑:刚刚注意到Jitse Nielsen在上面的链接中已经指出了这一点。
我知道这有点晚了,但我的一位同事想出了一些办法:
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
也许grid on
就足够了。
@Martijn 您的函数调用顺序略有偏差。试试这个:
x=-3:0.1:3;
y = x.^3;
plot(x,y), hold on
plot([-3 3], [0 0], 'k:')
hold off
受@Luisa 回答的启发,我做了一个函数,axes0
x = linspace(-2,2,101);
plot(x,2*x.^3-3*x+1);
axes0
您可以按照上面的链接下载该功能并获取更多使用详情
最简单的解决方案:
plot([0,0],[0.0], xData, yData);
这会在点 [0,0] 到 [0,0] 之间创建一条不可见的线,并且由于 Matlab 想要包含这些点,因此它将显示轴。