Divide date ticks into hours
現在この質問をフォロー中です
- フォローしているコンテンツ フィードに更新が表示されます。
- コミュニケーション基本設定に応じて電子メールを受け取ることができます。
エラーが発生しました
ページに変更が加えられたため、アクションを完了できません。ページを再度読み込み、更新された状態を確認してください。
古いコメントを表示
I wanted to divide my 24 hour data into 1 hour each, but MATLAB divided it into 1 hour 2 minutes each?, Please help on how to divide into 1 hour each

採用された回答
Use xtickformat | ytickformat | ztickformat which sets the TickLabelFormat of the axes (Matlab R2016b or later)
datetick(tickaxis,dateFormat) with dateFormat='HH' will also set the datetime format but the axis label will not include the full date references that shows using the x|y|ztickformat functions. Note: datetick is officially no longer recommended starting in R2024a.
7 件のコメント
Ajmal Rasheeda Satheesh
2021 年 11 月 18 日
I tried that and this is what I got, but I think this is just hiding values like 22:57 to 22, which is not what I want

Ajmal Rasheeda Satheesh
2021 年 11 月 18 日
No worries I figured it out, I had 'keepticks' turned on, that somehow ruined the plot
Adam Danz
2021 年 11 月 18 日
Good find. KeepTicks prevents matlab from re-computing an optimal tick interval given the length of tick labels.
Peter Perkins
2021 年 11 月 23 日
datetick is not really a great way to make plots against time. I recommend looking at plotting aganst a datetime instead.
datetick works with datetime values. I suppose xtickformat is a bit better since it includes the date stamp.
dtm = datetime('today') + seconds(0:10:1000);
data = rand(size(dtm));
plot(dtm, data)
datetick('x', 'MM', 'keepticks')
xlabel('minutes')

get(gca, 'xtick') % still datetime
ans = 1×10 datetime array
Nov 23, 2021, 00:00 Nov 23, 2021, 00:02 Nov 23, 2021, 00:04 Nov 23, 2021, 00:06 Nov 23, 2021, 00:08 Nov 23, 2021, 00:10 Nov 23, 2021, 00:12 Nov 23, 2021, 00:14 Nov 23, 2021, 00:16 Nov 23, 2021, 00:18
Or using xtickformat(datefmt)
figure()
plot(dtm, data)
xtickformat('mm') % NOTE: mm with xtickformat vs MM with datetick 😕
xlabel('minutes')

Peter Perkins
2021 年 11 月 24 日
Adam, you are right. I assumed the OP was using datenums. Still, datetick is not really the right way to manage the ticks in a datetime plot. Better to use the axis properties.
>> d = datetime(2021,11,24) + minutes(0:30:14400);
>> x = 1:length(d);
>> plot(d,x)
>> ax = get(gca,"XAxis")
ax =
DatetimeRuler with properties:
Limits: [Nov 24, 2021 Dec 04, 2021]
TickValues: [Nov 24, 2021 Nov 25, 2021 Nov 26, 2021 Nov 27, 2021 Nov 28, 2021 Nov 29, 2021 Nov 30, 2021 Dec 01, 2021 … ]
TickLabelFormat: 'MMM dd'
Show all properties
Adam Danz
2021 年 11 月 24 日
Thanks Peter. I've updated my answer.
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Dates and Time についてさらに検索
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
