Products & Services Solutions Academia Support User Community Company

Learn more about MATLAB   

Visualizing Data

Overview

You can use many MATLAB graph types for visualizing data patterns and trends. Scatter plots, described in this section, help to visualize relationships among the traffic data at different intersections. Data exploration tools let you query and interact with individual data points on graphs.

2-D Scatter Plots

A 2-D scatter plot, created with the scatter function, shows the relationship between the traffic volume at the first two intersections:

load count.dat
c1 = count(:,1); % Data at intersection 1
c2 = count(:,2); % Data at intersection 2

figure
scatter(c1,c2,'filled')
xlabel('Intersection 1')
ylabel('Intersection 2')

The covariance, computed by the cov function measures the strength of the linear relationship between the two variables (how tightly the data lies along a least-squares line through the scatter):

C12 = cov([c1 c2])
C12 =
  1.0e+003 *
    0.6437    0.9802
    0.9802    1.7144

The results are displayed in a symmetric square matrix, with the covariance of the ith and jth variables in the (i, j)th position. The ith diagonal element is the variance of the ith variable.

Covariances have the disadvantage of depending on the units used to measure the individual variables. You can divide a covariance by the standard deviations of the variables to normalize values between +1 and –1. The corrcoef function computes correlation coefficients:

R12 = corrcoef([c1 c2])
R12 =
    1.0000    0.9331
    0.9331    1.0000

r12 = R12(1,2) % Correlation coefficient
r12 =
    0.9331

r12sq = r12^2 % Coefficient of determination
r12sq =
    0.8707

Because it is normalized, the value of the correlation coefficient is readily comparable to values for other pairs of intersections. Its square, the coefficient of determination, is the variance about the least-squares line divided by the variance about the mean. Thus, it is the proportion of variation in the response (in this case, the traffic volume at intersection 2) that is eliminated or statistically explained by a least-squares line through the scatter.

3-D Scatter Plots

A 3-D scatter plot, created with the scatter3 function, shows the relationship between the traffic volume at all three intersections. Use the variables c1, c2, and c3 that you created in the previous step:

figure
scatter3(c1,c2,c3,'filled')
xlabel('Intersection 1')
ylabel('Intersection 2')
zlabel('Intersection 3')

Measure the strength of the linear relationship among the variables in the 3-D scatter by computing eigenvalues of the covariance matrix with the eig function:

vars = eig(cov([c1 c2 c3]))
vars =
  1.0e+003 *
    0.0442
    0.1118
    6.8300

explained = max(vars)/sum(vars)
explained =
    0.9777

The eigenvalues are the variances along the principal components of the data. The variable explained measures the proportion of variation explained by the first principal component, along the axis of the data. Unlike the coefficient of determination for 2-D scatters, this measure distinguishes predictor and response variables.

Scatter Plot Arrays

Use the plotmatrix function to make comparisons of the relationships between multiple pairs of intersections:

figure
plotmatrix(count)

The plot in the (i, j)th position of the array is a scatter with the i th variable on the vertical axis and the jth variable on the horizontal axis. The plot in the ith diagonal position is a histogram of the ith variable.

For more information on statistical visualization, see Plotting Data and Interactive Data Exploration in the MATLAB Data Analysis documentation.

Exploring Data in Graphs

Using your mouse, you can pick observations on almost any MATLAB graph with two tools from the figure toolbar:

These tools each place you in exploratory modes in which you can select data points on graphs to identify their values and create workspace variables to contain specific observations. When you use data brushing, you can also copy, remove or replace the selected observations.

For example, make a scatter plot of the first and third columns of count:

load count.dat
scatter(count(:,1),count(:,3))

Select the Data Cursor Tool and click the right-most data point. A datatip displaying the point's x and y value is placed there.

Datatips display x-, y-, and z- (for 3-D plots) coordinates by default. You can drag a datatip from one data point to another to see new values or add additional datatips by right-clicking a datatip and using the context menu. You can also customize the text that datatips display using M-code. For more information, see the datacursormode function and Interacting with Graphed Data in the MATLAB Data Analysis documentation.

Data brushing is a related feature that lets you highlight one or more observations on a graph by clicking or dragging. To enter data brushing mode, click the left side of the Data Brushing tool on the figure toolbar. Clicking the arrow on the right side of the tool icon drops down a color palette for selecting the color with which to brush observations. This figure shows the same scatter plot as the previous figure, but with all observations beyond one standard deviation of the mean (as identified using the Tools > Data Statistics GUI) brushed in red.

scatter(count(:,1),count(:,3))

After you brush data observations, you can perform the following operations on them:

For example, use the Data Brush context menu or the Tools > Brushing > Create new variable option to create a new variable called count13high.

A new variable in the workspace results:

count13high

count13high =
    61   186
    75   180
   114   257

For more information, see the MATLAB brush function and Marking Up Graphs with Data Brushing in the MATLAB Data Analysis documentation.

Linked plots, or data linking, is a feature closely related to data brushing. A plot is said to be linked when it has a live connection to the workspace data it depicts. The copies of variables stored in a plot object's XData, YData, (and, where appropriate, ZData), automatically updated whenever the workspace variables to which they are linked change or are deleted. This causes the graphs on which they appear to update automatically.

Linking plots to variables lets you track specific observations through different presentations of them. When you brush data points in linked plots, brushing one graph highlights the same observations in every graph that is linked to the same variables.

Data linking establishes immediate, two-way communication between figures and workspace variables, in the same way that the Variable Editor communicates with workspace variables. You create links by activating the Data Linking tool on a figure's toolbar. Activating this tool causes the Linked Plot information bar, displayed in the next figure, to appear at the top of the plot (possibly obscuring its title). You can dismiss the bar (shown in the following figure) without unlinking the plot; it does not print and is not saved with the figure.

The following two graphs depict scatter plot displays of linked data after brushing some observations on the left graph. The common variable, count carries the brush marks to the right figure. Even though the right graph is not in data brushing mode, it displays brush marks because it is linked to its variables.

figure
scatter(count(:,1),count(:,2))
xlabel ('count(:,1)')
ylabel ('count(:,2)')
figure
scatter(count(:,3),count(:,2))
xlabel ('count(:,3)')
ylabel ('count(:,2)')

The right plot shows that the brushed observations are more linearly related than in the left plot.

Brushed data observations appear highlighted in the brushing color when you display those variables in the Variable Editor, as you can see here:

openvar count

In the Variable Editor, you can alter any values of linked plot data, and the graphs will reflect your edits. To brush data observation from the Variable Editor, click its Brushing Tool button. If the variable you brush is currently depicted in a linked plot, the observations you brush highlight in the plot as well as in the Variable Editor. When you brush a variable that is a column in a matrix, the other columns in that row are also brushed. That is, you can brush individual observations in a row or column vector, but all columns in a matrix highlight in any row you brush, not just the observations you click.

For more information, see the linkdata function, Making Graphs Responsive with Data Linking in the MATLAB Data Analysis documentation, and Viewing and Editing Values in the Current Workspace in the MATLAB Desktop Environment documentation.

  


Recommended Products

Includes the most popular MATLAB recorded presentations with Q&A sessions led by MATLAB experts.

 © 1984-2009- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS