Matplotlib: Difference between revisions

1,540 bytes removed ,  7 years ago
imported>Jesstess
 
(24 intermediate revisions by 10 users not shown)
Line 1:
[[File:grid.png|right|300px]]
 
Very nice site!
== Project ==
 
Very nice site!
Learn how to plot data with the matplotlib plotting library. Ditch Excel forever!
 
== Goals ==
 
* practice reading data from a file
* practice using the matplotlib Python plotting library to analyze data and generate graphs
 
== Project setup ==
 
==== Mac OS X users only ====
 
If you do not already have a C compiler installed, you'll need one to install matplotlib. You have several options depending on your situation:
# Download and install Xcode (1.5 GB) from https://developer.apple.com/xcode/
# Download and install Command Line Tools for Xcode (175 MB) from https://developer.apple.com/downloads/index.action. This requires an Apple Developer account (free, but you have to sign up).
# Download and install kennethreitz's gcc installer (requires 10.6 or 10.7) from https://github.com/kennethreitz/osx-gcc-installer/
 
Please wave over a staff member and we'll help you pick which option is best for you computer.
 
=== Install the project dependencies ===
 
Please follow the official matplotlib installation instructions at http://matplotlib.sourceforge.net/users/installing.html
 
The dependencies vary across operating systems. http://matplotlib.sourceforge.net/users/installing.html#build-requirements summarizes what you'll need for your operating system.
 
A universal dependency is the NumPy scientific computing library. NumPy has download and installation instructions at http://numpy.scipy.org/
 
Installing matplotlib and its dependencies is somewhat involved; please ask for help if you get stuck or don't know where to start!
 
=== Download and un-archive the Matplotlib project skeleton code ===
 
* http://web.mit.edu/jesstess/www/IntermediatePythonWorkshop/Matplotlib.zip
 
Un-archiving will produce a <code>Matplotlib</code> folder containing several Python and text files.
 
=== Test your setup ===
 
Run the <code>basic_plot.py</code> script in your <code>Matplotlib</code> directory. A window with a graph should pop up.
 
Very nice site!
 
== Project steps ==
Line 64 ⟶ 29:
 
<pre>pyplot.plot([0, 2, 4, 8, 16, 32], "o-")</pre>
 
and re-run the script. What changed?
</li>
<li>
Line 75 ⟶ 42:
y_values = [0, 2, 4, 8, 16, 32]
pyplot.plot(x_values, y_values, "o-")</pre>
 
and re-run the script. What changed?
 
Note how matplotlib automatically resizes the graph to fit all of the points in the figure for you.
Line 81 ⟶ 50:
Read about how to generate random integers on http://docs.python.org/library/random.html#random.randint.
 
Then, instead of hard-coding x values and y values in <code>basic_plot.py</code>, generate a list of random y values and plot them.
 
An example plot using random y values might look like this:
Line 96 ⟶ 65:
* What does matplotlib pick as the x values if you don't supply them yourself?
* What options would you pass to <code>pyplot.plot</code> to generate a plot with red triangles and dotted lines?
 
 
=== 2. Plotting the world population over time ===
Line 136 ⟶ 104:
 
<pre>pyplot.plot(my_data_1, "mo-", label="my data 1")
pyplot.plot(my_data_2, "bo-", "label="my data 2")</pre>
 
will plot <code>my_data_1</code> in magenta and <code>my_data_2</code> in blue on the same figure.
 
Supply labels for your plots, like above. Then use <code>pyplot.legend</code> to give your graph a legend. Just plain <code>pyplot.legend()</code> will work, but providing more options may give a better effect.
 
Your graph should look something like this:
Line 157 ⟶ 125:
</li>
<li>
Examples of legends: http://matplotlib.sourceforge.net/examples/pylab_examples/legend_auto.html
</li>
<li>
Line 180 ⟶ 148:
## On line 44, we use <code>pyplot.bar</code> instead of our usual <code>pyplot.plot</code>. What are the 3 arguments passed to <code>pyplot.bar</code>?
# We've included a mystery text file <code>mystery.txt</code>: an excerpt from an actual novel. Alter <code>constitution.py</code> to process the data in <code>mystery.txt</code> instead of <code>constitution.txt</code>, and re-run the script. What do you notice that is odd about this file? You can read more about this odd novel [http://en.wikipedia.org/wiki/Gadsby_(novel) here].
 
 
=== 2. Tour the matplotlib gallery ===
Line 189 ⟶ 158:
 
===Congratulations!===
 
You've read, modified, and created scripts that plot and analyze data using matplotlib. Keep practicing!
 
[[File:Fireworks.png|150px]]
Anonymous user