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.

 採用された回答

Jan
Jan 2018 年 7 月 10 日

1 投票

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 件のコメント

Reema Alhassan
Reema Alhassan 2018 年 7 月 10 日
could you show me please how to do this ?
Jan
Jan 2018 年 7 月 10 日
編集済み: Jan 2018 年 7 月 10 日
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 2018 年 7 月 10 日
編集済み: Reema Alhassan 2018 年 7 月 10 日
Thank you so much !
Steven Lord
Steven Lord 2018 年 7 月 10 日
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')

サインインしてコメントする。

その他の回答 (1 件)

Mandeep  Singh
Mandeep Singh 2018 年 7 月 10 日

0 投票

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 件のコメント

Reema Alhassan
Reema Alhassan 2018 年 7 月 10 日
this is what I'm getting ..
jonas
jonas 2018 年 7 月 10 日
編集済み: jonas 2018 年 7 月 10 日
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 2018 年 7 月 10 日
Thank you so much

サインインしてコメントする。

カテゴリ

質問済み:

2018 年 7 月 10 日

コメント済み:

2018 年 7 月 10 日

Community Treasure Hunt

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

Start Hunting!

Translated by