How to change interval unit of x axis

9 visualizzazioni (ultimi 30 giorni)
Sehoon Chang
Sehoon Chang il 13 Gen 2020
Modificato: Meg Noah il 14 Gen 2020
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.
  2 Commenti
Sehoon Chang
Sehoon Chang il 13 Gen 2020
Thank you Meg Noah for your comment.
I have tried both
1) set(gca,'xtick',....,'xticklabel',....)
2) xlim([minX maxX]);
However, both codes only restrict or changes the X-Axis Interval, not chaging the graph line.

Accedi per commentare.

Risposta accettata

Meg Noah
Meg Noah il 14 Gen 2020
Modificato: Meg Noah il 14 Gen 2020
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!
npts = length(Halbjahresdauerlinie_15min.Heizstunden);
if (~mod(npts,4) == 0)
error('unable to downsample because array length needs to be a factor of 4');
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);
xlabel('Heizstunden per day');
ylabel('Leistung in kW');
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...

Più risposte (1)

Eric Sofen
Eric Sofen il 13 Gen 2020
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.
X.Format = 'h';


Scopri di più su Graph and Network Algorithms in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by