xticklabels function for more than 11 labels ?

Hello everyone ,
I need to use the function "xticklabels" for labeling the x-axis this is my code:
figure (1)
xticklabels({'jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec'})
but the figure display only till 'nov' how can I include the last one ?
Thank you.

 Respuesta aceptada

Jan
Jan el 10 de Jul. de 2018

1 voto

It is smarter to avoid the hard coding to set the names of the months, but to use datetick to display the names dynamically and automatically adjusted to the data.

4 comentarios

Reema Alhassan
Reema Alhassan el 10 de Jul. de 2018
could you show me please how to do this ?
Jan
Jan el 10 de Jul. de 2018
Editada: Jan el 10 de Jul. de 2018
I'd start with doc datetick (link) .
Please read this at first. If a detail is not clear, ask specifically.
This example might be useful:
startDate = datenum('01-01-2009');
endDate = datenum('12-31-2009');
xData = linspace(startDate,endDate,12);
ax = axes;
bar(xData,rand(1,12))
ax.XTick = xData;
datetick(ax1,'x','mm','keepticks')
pause(1)
datetick(ax1,'x','mmm','keepticks')
Reema Alhassan
Reema Alhassan el 10 de Jul. de 2018
Editada: Reema Alhassan el 10 de Jul. de 2018
Thank you so much !
Instead of using datetick, consider plotting a datetime array.
startOfYear = dateshift(datetime('today'), 'start', 'year');
randomDays = randi([0 364], 1, 20);
D = startOfYear + days(sort(randomDays));
D.Format = 'MMM dd';
plot(D, 1:20, '-o')

Iniciar sesión para comentar.

Más respuestas (1)

Mandeep  Singh
Mandeep Singh el 10 de Jul. de 2018
From my understanding of the problem, you could specify the xticks before xticklabel to get the desired output . Try the following example snippet:
xticks(1:12)
xticklabels({'jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec'})
The value of the xticks can be varied according to the data you are plotting.

3 comentarios

Reema Alhassan
Reema Alhassan el 10 de Jul. de 2018
this is what I'm getting ..
jonas
jonas el 10 de Jul. de 2018
Editada: jonas el 10 de Jul. de 2018
The problem is that when you create a default figure, then matlab makes an axis with xlim=[0 1] with 11 equally spaced xtick. You can just change the xlim to get your desired results, but for almost any application I would suggest using Jan's method instead.
Reema Alhassan
Reema Alhassan el 10 de Jul. de 2018
Thank you so much

Iniciar sesión para comentar.

Categorías

Preguntada:

el 10 de Jul. de 2018

Comentada:

el 10 de Jul. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by