How to use separate locations for axis location and axis labels?

1 次查看(过去 30 天)
Hello,
I'd like to create a 2D plot where the x-axis axis is locatatd at y = 0 but the labels stay at the bottom of the plot rather than close to the axis (relevant when y-axis lower limit is less than zero). I want to achieve something like this (produced in Excel):
In Matlab I can place the x-axis at y=0 using the 'XAxisLocation' property
figure
time = [0 1 2 3 4 5];
value = [-3 -1 4 1 2 5];
plot(time,value)
xlabel('time'), ylabel('value')
set(gca,'ylim',[-5 5])
set(gca,'XAxisLocation','origin')
But this also moves the x-axis labels to the middle of the plot.
Is there a way to keep the x-axis labels at the bottom?
Thanks

采纳的回答

Scott MacKenzie
Scott MacKenzie 2022-2-27
编辑:Scott MacKenzie 2022-2-27
You don't need to set the x-axis location. Delete that line and then use yline to get a line at y = 0:
figure
time = [0 1 2 3 4 5];
value = [-3 -1 4 1 2 5];
plot(time,value);
xlabel('time'), ylabel('value')
set(gca,'ylim',[-5 5])
yline(0); % add line at y=0
% add tick marks
ax = gca;
x = ax.XTick;
for i=1:numel(x)
line([x(i) x(i)],[0.1 -0.1], 'color', [.4 .4 .4]);
end
  3 个评论
Omar Mian
Omar Mian 2022-3-6
Thank you. I was hoping there might be an axis property that I had overlooked, but I can use this as a workaround.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Annotations 的更多信息

标签

产品


版本

R2021b

Translated by