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

3 visualizaciones (últimos 30 días)
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

Respuesta aceptada

Scott MacKenzie
Scott MacKenzie el 27 de Feb. de 2022
Editada: Scott MacKenzie el 27 de Feb. de 2022
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 comentarios
Scott MacKenzie
Scott MacKenzie el 27 de Feb. de 2022
OK, yes, I see the ticks now. I just added some code to draw tick marks.
Omar Mian
Omar Mian el 6 de Mzo. de 2022
Thank you. I was hoping there might be an axis property that I had overlooked, but I can use this as a workaround.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Labels and Annotations en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by