changing the axis of a plot in a way that the data series starts at x=0 at a point at one point on the y-axis and ends on the right end of the plot

Asked by Locks on 29 Apr 2013 at 20:09
Latest activity Answered by Jonathan Epperl about 6 hours ago

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?

1 Comment

Babak on 29 Apr 2013 at 20:27

Undefined function or variable 'VIXdate'.

Locks

Products

No products are associated with this question.

3 Answers

Answer by Mel about 13 hours ago

You could also set just the x axis to be the same as your data:

xlim([0 max(dates)])

0 Comments

Mel
Answer by Jonathan Epperl on 29 Apr 2013 at 22:55
axis tight

3 Comments

Locks about 23 hours ago

that is working, but I am only looking for that for the x axis but not for the y axis, is that also possible?

Jonathan Epperl about 14 hours ago

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.

Locks about 11 hours ago
    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?

Jonathan Epperl
Answer by Jonathan Epperl about 6 hours ago

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));

0 Comments

Jonathan Epperl

Contact us