Graphing Data Read from a Data File
The following examples illustrate how to read a simple data file and produce a plot.
Contents
plot11A.m - Graphing Data Read from a Data File
This first example uses the load() command to read a file run1.txt and store its contents in a matrix. The file contains three columns of data: (1) independent variable, (2) dependent variable (3) error bar for each data point:
0 0.7 0.9 0.5 0.3 0.5 1 1.6 0.7 1.5 2.5 0.8 2 1.5 0.6 2.5 3.1 1.5 3 4.5 0.8 3.5 3.6 0.99 4 5.7 0.9 4.5 4.3 1.3 5 6.8 0.8 5.5 7.9 1.2 6 5.7 1.4 6.5 7.4 0.9 7 8.3 0.8 7.5 7.6 1.1
In this first example, we graph the second column (dependend variable) against the first column (independent variable) ignoring the error bars for now:
data = load('run1.txt'); % read in the data file x = data(:,1); % extract x values from 1st column y = data(:,2); % extract y values from 2nd column % plot data plot(x,y,'bo','MarkerFaceColor','b') % Label axes xlabel('x') ylabel('y') % Set axis limits for plot xlim([-0.5 8]) % x axis goes from 0 to 4 pi ylim([-2 10]); % y axis goes from -4 to 4
plot11B.m - Adding Error Bars
To add error bars, we replace the plot() command with the errorbar() command. It takes the same arguments as the plot() command, except the third argument is the size of the errorbar for each data point.
data = load('run1.txt'); % read in the data file x = data(:,1); % extract x values from 1st column y = data(:,2); % extract y values from 2nd column err = data(:,3); % extract error bars from 3rd column % plot data points with error bars errorbar(x,y,err,'bo','MarkerFaceColor','b'); % Label axes and give title xlabel('x') ylabel('y') % Set axis limits for plot xlim([-0.5 8]) % x axis goes from 0 to 4 pi ylim([-2 10]); % y axis goes from -4 to 4
plot11C.m - Adding a Reference Curve
Suppose our theory predicted a linear relationship between the dependent and independent variables. As a third eample, we draw a red line on the graph to show how one might add a theoretical (or reference) line for comparison:
data = load('run1.txt'); % read in the data file x = data(:,1); % extract x values from 1st column y = data(:,2); % extract y values from 2nd column err = data(:,3); % extract error bars from 3rd column % plot data points with error bars errorbar(x,y,err,'bo','MarkerFaceColor','b'); % plot reference line hold on plot([-1 8], [-1 9.5], 'r-') % Label axes and give title xlabel('x') ylabel('y') % Set axis limits for plot xlim([-0.5 8]) % x axis goes from 0 to 4 pi ylim([-2 10]); % y axis goes from -4 to 4 % add a lengnd in the lower-right corner legend({'experiment', 'theory'}, 'location','southeast')
To draw the comparison line, we provide the (x,y) coordinates for the end points of the line segment we want to draw. In this example, the left side has coordinates (x1, y1) = (-1,-1) and the right side has coordinates (x2,y2) = (8,9.5). We group the x coordinates together in a matrix [x1 x2] = [-1 8]. Similarly we group the y values together [y1 y2] = [-1 9.5]. Then we pass these two matrices to the plot command like this
plot([-1 8], [-1 9.5], 'r-')
We also include a legend in the lower-right corner. Normally, the legend appears in the upper right-hand corder. However, since there are data points there, we need to relocate it. We use the 'location' specifier and tell Matlab to put the legend in the southeast corner (i.e. lower right). When using this specifier, we need to group the two labels (i.e. 'theory' and 'experiment') with curly brackets.