How to change interval unit of x axis
2 次查看(过去 30 天)
显示 更早的评论
Hi everyone,
I am trying to figure out how to adjust the graph by changing the interval of my X axis.
I made a timetable and both X and Y values have 17300 arrays, X-value being the time interval in 15 minutes of half year.
The graph came out well. However, i wish to adjust the X-axis into hourly interval.
Is there code that adjusts a graph according to a defined inteval of X-axis?
Using the graph as an exmaple that i have made:
it can be seen that the X-axis value goes up to 18000 (15-Min Interval measurements of a half year).
I wish to change X-axis go upto 4380 (hourly Interval measurement of a half year).
I appreciate for your advice and help.
JC
采纳的回答
Meg Noah
2020-1-14
编辑:Meg Noah
2020-1-14
Here's one way
You can do shape downsampling - reshape then sum the lines. I made some data by digitizing yoour plot. It's attached. But use your data for the real plot of course!
load('Halbjahresdauerlinie_15min.mat')
npts = length(Halbjahresdauerlinie_15min.Heizstunden);
if (~mod(npts,4) == 0)
error('unable to downsample because array length needs to be a factor of 4');
end
Leistung = sum(reshape(Halbjahresdauerlinie_15min.Leistung,4,npts/4))';
Leistung = Leistung/4;
Heizstunden = Halbjahresdauerlinie_15min.Heizstunden(1:4:end)/4';
Halbjahresdauerlinie_Daily = table(Heizstunden,Leistung);
figure();
plot(Halbjahresdauerlinie_Daily.Heizstunden,Halbjahresdauerlinie_Daily.Leistung);
xlabel('Heizstunden per day');
ylabel('Leistung in kW');
title('Halbjahresdauerlinie')
You can just down sample the time axis which are 15-min intervals, or you can do mean(reshape(Halbjahresdauerlinie_15min.Heizstunden, 4, npts/4); It depends upon how you want to annotate the time axis for each plot - from the half day or from the start of day...
0 个评论
更多回答(1 个)
Eric Sofen
2020-1-13
If X is a duration array (X = minutes(0:15:262800)), you plot datetimes or durations directly, and changing the Format property of the duration will change how it displays.
compare
plot(X,Y)
to
X.Format = 'h';
plot(X,Y)
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!