Set date limits into x-axis
14 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
gsourop
le 9 Fév 2017
Réponse apportée : Peter Perkins
le 9 Fév 2017
Hi everyone,
I have created several plots into a single figure, but the problem is that the x-axis (dates) are not consistent with my data, so there are gaps between the beginning of the a-axis and the graphs' line and the end of graphs' line and the end of the x-axis. I applied the following code:
% I want to create the x-axis, that is the dates (432x1), ie. starting from 1979:01 to 2014:12
DateNumber = datenum(1979,1:432,1);
formatOut='mmmm-dd-yyyy';
date = datestr(DateNumber,formatOut);
% then I want to print the information in every y(:,i) into a graph by including the dates I created before.
% If y is a matrix 432x27, from 1979:01 to 2014:12, I just want to create the graph with this information
y = randn(432,27);
figure()
xlength = 0.30;
ylength = 0.10;
xstart = [0.05 0.39 0.73];
ystart = [0.02 0.13 0.24 0.35 0.46 0.57 0.68 0.79 0.90];
hold on
for iy=1:9
for ix = 1:3
ind = ix + 3*(iy-1);
coordinates = [xstart(ix) ystart(9-iy+1) xlength ylength];
subplot('Position',coordinates);
plot(DateNumber,ind*y(:,ind))
drawnow
datetick('x','mmm-yy','keepticks')
end
end
I would appreciate any help.Thanks in advance!
0 commentaires
Réponse acceptée
Peter Perkins
le 9 Fév 2017
MATLAB graphics underwent a major upgrade a few releases back, so it's hard to know exactly what your figure looks like without knowing what release you're on, or better yet seeing an example and a clear description of what you are trying to get. So I'm not sure what problem you are running into. As Adam says, I think maybe the root cause is that you have a bunch of small plots, with not enough room to properly label the time axis.
If you have access to R2016b, this makes a pretty nice plot of your data, see attached:
time = datetime(1979,1:432,1);
y = randn(432,27);
tt = array2timetable(y,'RowTimes',time)
ttplot(tt)
ttplot is on the File Exchange. If you're using something between R2014b and R2016a, you can still do that using a table (rather than a timetable), it's just not quite as immediate.
0 commentaires
Plus de réponses (1)
Adam
le 9 Fév 2017
doc xlim
What is wrong with just using this to set the limits?
2 commentaires
Adam
le 9 Fév 2017
Well, you can set 'XTick' for your axes to whatever you want if you want more ticks, but when I run your code the plots are so small there isn't room for many ticks. I see three when I do it, but ticks are a different issue to limits - they are controlled by a totally different property of the axes.
Voir également
Catégories
En savoir plus sur Discrete Data Plots dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!