hi,
I have this code:
dates=datenum(VIXdate)
y=VIX
plot(dates,y)
%datevc divides the date in different columns, first colum is the year, %second the month and thrid the day d=datevec(dates)
%Takes just the year (first column) d=d(:,1)
%takes every year just once [a,idx]=unique(d(:,1),'first')
ylabel('VIX');
set(gca,'xtick',dates(idx),'xticklabel',a)
set(gca,'Box','off')
this works fine, but the problem I faces is that the time series (y=VIX) does not start at the left end of the plot but instead there is a space between the y-axis and the first point of the time series. I know that when there are normal values on the x-axis, I can change it, but I am not able to do it with dates, what do I need to do?
No products are associated with this question.
You could also set just the x axis to be the same as your data:
xlim([0 max(dates)])
axis tight
that is working, but I am only looking for that for the x axis but not for the y axis, is that also possible?
Sure. Without knowing what your actual data looks like (it would still be nice if you could post a working minimal example), you could do that:
ylims = get(gca,'YLim'); axis tight set(gca,'YLim',ylims);
Dirty, but should work.
dates=datenum(VIXdate)
y=VIX
plot(dates,y)d=datevec(dates)
%Takes just the year (first column)
d=d(:,1) %takes every year just once
[a,idx]=unique(d(:,1),'first') ylabel('VIX');set(gca,'xtick',dates(idx),'xticklabel',a)
ylims = get(gca,'YLim');
axis tight
set(gca,'YLim',ylims);set(gca,'Box','off')
it's working perfectly now, thanks!
in addition, it would be great if the number 0 on the y axis is not shown in the plot due to the fact that it's so near to the numbers on the x axis, is there a way to do that?
This is still not a working example, the variable VIXdate is obviously unknown to us...
So the dirty way again:
ytix = get(gca,'YTick'); set(gca,'YTick',ytix(2:end));
1 Comment
Direct link to this comment:
http://www.mathworks.com/matlabcentral/answers/74023#comment_146209
Undefined function or variable 'VIXdate'.