Histogram plot by equal time intervals
조회 수: 5 (최근 30일)
이전 댓글 표시
Dear all,
I have with my the attached dataset that I will like to plot in an equal interval time histogram.
Below here is my code:
clc
A = load ('TutorialSampleT.txt');
Time = A (:,1) ;
x = A (:,2 ) ;
y = A (:,3 ) ;
z = A (:,4 ) ;
Amplitude = A (:,5) ;
%define no of bins
noOfBins=min(Time):0.90:max(Time);
%plot histogram
histogram(Time,numel(noOfBins));
timeFormat=noOfBins;
timeFormat=timeFormat/24;
la=datestr(timeFormat,'HH:MM')
xticks(noOfBins);
xticklabels({la});
And the results:

I will be very happy if I can get some assistance with changing the time intervals to something more unifrom (an hour or 2 interval time will be perfect).
Thank you.
댓글 수: 0
채택된 답변
Voss
2022년 4월 5일
clc
A = load ('TutorialSampleT.txt');
Time = A (:,1) ;
x = A (:,2 ) ;
y = A (:,3 ) ;
z = A (:,4 ) ;
Amplitude = A (:,5) ;
% interval in hours:
% interval = 0.9;
% interval = 1;
interval = 2;
%define no of bins
noOfBins=min(Time):interval:max(Time);
%plot histogram
% histogram(Time,numel(noOfBins));
histogram(Time,numel(noOfBins)-1); % number of bins in the histogram is one less than numel(noOfBins), i.e., noOfBins defines the bin edges
timeFormat=noOfBins;
timeFormat=timeFormat/24;
la=datestr(timeFormat,'HH:MM');
xticks(noOfBins);
xticklabels({la});
추가 답변 (1개)
Steven Lord
2022년 4월 5일
Rather than specifying the number of bins you could specify the bin edges explicitly.
minutesPerDay = minutes(days(1));
T = datetime('today');
dt = T + minutes(randi(minutesPerDay, 1, 1000));
edges = T + hours(0:2:24);
histogram(dt, edges)
xticks(edges)
참고 항목
카테고리
Help Center 및 File Exchange에서 Data Distribution Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

