Datenum axes scaling.

4 visualizaciones (últimos 30 días)
Antony
Antony el 10 de Nov. de 2011
Hello, everyone!
I'm writing a GUI containing axes with datestr vector as X data, and it creates a plot with 3 months long ticks. Now, I want to scale it from start_date_num to end_date_num, and, for example, switch my datetick to 1 year if time period is more than 2 years. The problem is that I can't create the new XTick vector that would point exactly on the 1st of January of every year (depends on 365/366 days a year, and on lesser scales - on 28/29Feb, 30/31days a month). The code I tried:
time_period = scale_end - scale_start;
set(axes_handle, 'XTickMode', 'auto');
if time_period > (365*2)
datetick(axes_handle, 'x', 'yy');
set(get(axes_handle, 'XLabel'), 'String', 'Time (year)');
end
set(axes_handle, 'XLim', [start_date_num end_date_num]);
This showed the right picture with Xlabels changed to the needed ones, but still 3 months away from each other.
Any help is appreciated, thank in advance!

Respuesta aceptada

Walter Roberson
Walter Roberson el 10 de Nov. de 2011
Set explicit XTick yourself instead using automatic mode. It usually isn't fun to figure out "nice" ticks as the user zooms and pans arbitrarily, but it can be done.
  1 comentario
Antony
Antony el 11 de Nov. de 2011
"It usually isn't fun to figure out "nice" ticks as the user zooms and pans arbitrarily, but it can be done."
Thank you for the answer, but that's what I meant by "The problem is that I can't create the new XTick vector that would point exactly on the 1st of January of every year (depends on 365/366 days a year, and on lesser scales - on 28/29Feb, 30/31days a month)."
Problem solved by replotting all lines cut, though this solution is not very elegant and needed certain shamanism.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Surface and Mesh Plots en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by