How to plot a specific value in Y-axis?

24 views (last 30 days)
I want to plot a specific range of Y-axis and not the entire Y-axis.
For example:
load sunspot.dat
year = sunspot(:,1);
avSpots = sunspot(:,2);
plot(year, avSpots)
The Y-axis is from 1700 to 2000
Let say I want to plot from 1750 to 1800, and then 1850 to 1900.
I cannot find any example, use
y = linspace(x1,x2)
  1 Comment
Matlaber on 12 Feb 2019
It seemed not working
axis([0 200 1700 1750]);
axis([XMIN XMAX YMIN YMAX]) sets scaling for the x- and y-axes on the current plot.

Sign in to comment.

Accepted Answer

Adam Danz
Adam Danz on 12 Feb 2019
Edited: Adam Danz on 25 Feb 2019
First, your example references the x-axis; not the y-axis. Here's how to plot a portion of the data along the x axis. The same process can be applied to the y-axis.
load sunspot.dat
year = sunspot(:,1);
avSpots = sunspot(:,2);
% select the data you want to include
%'includeIndex' is a logical index that selects which data to include
% This statement selects any data between 1750-1800 and 1850-1900
includeIndex = ((year >= 1750) & (year <= 1800)) | ((year >= 1850) & (year <= 1900));
%plot results, select only included data
plot(year(includeIndex), avSpots(includeIndex))
To plot the two spans of time separately,
idx1 = (year >= 1750) & (year <= 1800);
idx2 = (year >= 1850) & (year <= 1900);
%plot results, select only included data
plot(year(idx1), avSpots(idx1),'r-')
hold on
plot(year(idx2), avSpots(idx2),'b-')
Adam Danz
Adam Danz on 12 Feb 2019
Yeah, that's very very easy to do. Check out the how I formed the "idx1" or "idx2" variables - you'll do the same except with the years you listed above. To get the starting year, min(year). To get the end year, max(year).

Sign in to comment.

More Answers (0)


Find more on 2-D and 3-D Plots in Help Center and File Exchange


Community Treasure Hunt

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

Start Hunting!