Home

Staff
     
Consulting
               
Mathematica Tools

Customer Quotes
        
Contact

Older Mathematica Items

 

 

 

 

 

Scientific Arts

Exploring a Data Set: Plotting with Error Bars


The Data Set

At the URL http://pdg.lbl.gov/~sbl/pipp_total.dat there is a data set that describes the total interaction cross section for the elementary particle reaction [Graphics:Images/datawitherrors_gr_1.gif]. After downloading the file (named pipp_total.dat) from the web we can read it into Mathematica using the Import function. (If the file pipp_total.dat is not placed in a directory that is contained in Mathematica's $Path variable, you can make it available by executing the function [Graphics:Images/datawitherrors_gr_2.gif] where path is the path to the needed directory.)

[Graphics:Images/datawitherrors_gr_3.gif]

The first 11 lines of this data set consists of an informational header, the remaining lines contain data. The fifth row names the data that are in each column (there are 11 columns). The columns in the data set are as follows:

[Graphics:Images/datawitherrors_gr_4.gif]

[Graphics:Images/datawitherrors_gr_5.gif]

From this we see that, column 2 contains the laboratory beam energy, column 5 contains the cross section, and columns 6 and 7 contain the errors. First we drop the header information from the data

[Graphics:Images/datawitherrors_gr_6.gif]

And now, using pattern matching and transformation rules, we create data sets with the desired information. The list dataWithErrors contains the data along with the error information in the form [Graphics:Images/datawitherrors_gr_7.gif] and the list dataWithoutErrors contains just the [Graphics:Images/datawitherrors_gr_8.gif] data.

[Graphics:Images/datawitherrors_gr_9.gif]
[Graphics:Images/datawitherrors_gr_10.gif]

Plotting the data

First we make a basic plot of the data.

[Graphics:Images/datawitherrors_gr_11.gif]

[Graphics:Images/datawitherrors_gr_12.gif]

There are, in fact, data beyond 14 GeV/c laboratory energy.

[Graphics:Images/datawitherrors_gr_13.gif]
[Graphics:Images/datawitherrors_gr_14.gif]

This data could be seen by choosing the [Graphics:Images/datawitherrors_gr_15.gif] option to ListPlot. However, to exhibit the structure of the data, a log-log plot would serve better. Various logarithmic plots are contained in the standard add-on package Graphics`Graphics`. First load the package.

[Graphics:Images/datawitherrors_gr_16.gif]

Now take a look at the data again.

[Graphics:Images/datawitherrors_gr_17.gif]

[Graphics:Images/datawitherrors_gr_18.gif]

Select the data between 1 and 2.5 GeV/c to get a closer look in that region.

[Graphics:Images/datawitherrors_gr_19.gif]

[Graphics:Images/datawitherrors_gr_20.gif]

Plotting with Error Bars: MultipleListPlot

One way that we can put errors onto this plot is to make use of the standard add-on package Graphics`MultipleListPlot`.

There are several ways to specify the points in the data sets used by MultipleListPlot. The most basic involve only the locations of the points. If a point is given as a single number, the value is treated as a [Graphics:Images/datawitherrors_gr_21.gif] value, and the [Graphics:Images/datawitherrors_gr_22.gif] value is determined by the position of the point in the list of data. If given as a pair [Graphics:Images/datawitherrors_gr_23.gif], the point is placed at the [Graphics:Images/datawitherrors_gr_24.gif] coordinates. Each point can be grouped with an error specification, given as an ErrorBar object. An ErrorBar object can accept a specification of error in the [Graphics:Images/datawitherrors_gr_25.gif] variable or in both [Graphics:Images/datawitherrors_gr_26.gif] and [Graphics:Images/datawitherrors_gr_27.gif]. An error given as a single value indicates the same error in the positive and negative directions; a negative number paired with a positive number indicates a different error in each direction.

First load the package.

[Graphics:Images/datawitherrors_gr_28.gif]

Loading this package then enables the ErrorBar function.

Here is the usage message for ErrorBar:

[Graphics:Images/datawitherrors_gr_29.gif]
[Graphics:Images/datawitherrors_gr_30.gif]

The selected data can be put into this form through a transformation rule.

[Graphics:Images/datawitherrors_gr_31.gif]
[Graphics:Images/datawitherrors_gr_32.gif]

[Graphics:Images/datawitherrors_gr_33.gif]

It appears from looking at this plot that, of the various data sources that were combined to produce this overall data set, there appear to be some (perhaps one?) that have statistics that are quite different from the others. One could continue to investigate this by partitioning the data according to the "Reference" field to discover whether this hypothesis is true.

Plotting with Errors: Graphics Primitives

Lets take a different approach to producing this plot. Here we will work with graphics primitives to gain more control over the form that this plot takes (although Graphics`MultipleListPlot` does give you more control than we have used above), and to ultimately produce a customized graphic.

Select the data between 1 and 2.5 GeV/c again

[Graphics:Images/datawitherrors_gr_34.gif]

Our approach will be to convert the data of the form [Graphics:Images/datawitherrors_gr_35.gif] into graphics directives: Points and Lines. Thus, for each data point to have error lines extending above and below, we would want something of the form [Graphics:Images/datawitherrors_gr_36.gif]. We can do this easily with a transformation rule.

[Graphics:Images/datawitherrors_gr_37.gif]

Display the graphics primitives by enclosing them in Graphics and then use Show.

[Graphics:Images/datawitherrors_gr_38.gif]

[Graphics:Images/datawitherrors_gr_39.gif]

Let's color the error bars red and make the data points larger.

[Graphics:Images/datawitherrors_gr_40.gif]
[Graphics:Images/datawitherrors_gr_41.gif]

[Graphics:Images/datawitherrors_gr_42.gif]

Now we color the error bars blue when either of the errors is greater than 0.5

[Graphics:Images/datawitherrors_gr_43.gif]
[Graphics:Images/datawitherrors_gr_44.gif]

[Graphics:Images/datawitherrors_gr_45.gif]

This sort of graphics development and exploration can be continued along these lines so as to customize a set of data visualization tools for your specific needs. (A simple extension of this example would be to add the serifs on the tops and bottoms of the error bars: this just involves the addition of some more line primitives to the transformation rules used here.) You could then gather the resulting code together to produce a function that can be reused as needed. Here is a basic example that makes use of what we have done here.

[Graphics:Images/datawitherrors_gr_46.gif]

Here is an example of its use.

[Graphics:Images/datawitherrors_gr_47.gif]

[Graphics:Images/datawitherrors_gr_48.gif]


For further information on our services send email to info@scientificarts.com .
Contents of this web site Copyright © 1999-2011, Scientific Arts, LLC.

s