# Matplotlib for Python Developers

Formats:

save 15%!

save 6%!

**Free Shipping!**

Also available on: |

- Create high quality 2D plots by using Matplotlib productively
- Incremental introduction to Matplotlib, from the ground up to advanced levels
- Embed Matplotlib in GTK+, Qt, and wxWidgets applications as well as web sites to utilize them in Python applications
- Deploy Matplotlib in web applications and expose it on the Web using popular web frameworks such as Pylons and Django
- Get to grips with hands-on code and complete realistic case study examples along with highly informative plot screenshots

### Book Details

**Language :**English

**Paperback :**308 pages [ 235mm x 191mm ]

**Release Date :**November 2009

**ISBN :**1847197906

**ISBN 13 :**9781847197900

**Author(s) :**Sandro Tosi

**Topics and Technologies :**All Books, Application Development, Data, Open Source

## Table of Contents

PrefaceChapter 1: Introduction to Matplotlib

Chapter 2: Getting Started with Matplotlib

Chapter 3: Decorate Graphs with Plot Styles and Types

Chapter 4: Advanced Matplotlib

Chapter 5: Embedding Matplotlib in GTK+

Chapter 6: Embedding Matplotlib in Qt 4

Chapter 7: Embedding Matplotlib in wxWidgets

Chapter 8: Matplotlib for the Web

Chapter 9: Matplotlib in the Real World

Index

- Chapter 1: Introduction to Matplotlib
- Merits of Matplotlib
- Matplotlib web sites and online documentation
- Output formats and backends
- Output formats
- Backends

- About dependencies
- Build dependencies

- Installing Matplotlib
- Installing Matplotlib on Linux
- Installing Matplotlib on Windows
- Installing Matplotlib on Mac OS X
- Installing Matplotlib using packaged Python distributions
- Installing Matplotlib from source code
- Testing our installation

- Summary

- Chapter 2: Getting Started with Matplotlib
- First plots with Matplotlib
- Multiline plots
- A brief introduction to NumPy arrays

- Grid, axes, and labels
- Adding a grid
- Handling axes
- Adding labels

- Titles and legends
- Adding a title
- Adding a legend

- A complete example
- Saving plots to a file
- Interactive navigation toolbar
- IPython support
- Controlling the interactive mode
- Suppressing functions output

- Configuring Matplotlib
- Configuration files
- Configuring through the Python code
- Selecting backend from code

- Summary

- Chapter 3: Decorate Graphs with Plot Styles and Types
- Markers and line styles
- Control colors
- Specifying styles in multiline plots

- Control line styles
- Control marker styles
- Finer control with keyword arguments

- Control colors

- Handling X and Y ticks
- Plot types
- Histogram charts
- Error bar charts
- Bar charts
- Pie charts
- Scatter plots

- Polar charts
- Navigation Toolbar with polar plots
- Control radial and angular grids

- Text inside figure, annotations, and arrows
- Text inside figure
- Annotations
- Arrows

- Summary

- Markers and line styles

- Chapter 4: Advanced Matplotlib
- Object-oriented versus MATLAB styles
- A brief introduction to Matplotlib objects
- Our first (simple) example of OO Matplotlib

- Subplots
- Multiple figures
- Additional Y (or X) axes
- Logarithmic axes
- Share axes

- Plotting dates
- Date formatting
- Axes formatting with axes tick locators and formatters
- Custom formatters and locators

- Text properties, fonts, and LaTeX
- Fonts
- Using LaTeX formatting
- Mathtext
- External TeX renderer

- Contour plots and image plotting
- Contour plots
- Image plotting

- Summary

- Object-oriented versus MATLAB styles

- Chapter 5: Embedding Matplotlib in GTK+
- A brief introduction to GTK+
- Introduction to GTK+ signal system

- Embedding a Matplotlib figure in a GTK+ window
- Including a navigation toolbar

- Real-time plots update
- Embedding Matplotlib in a Glade application
- Designing the GUI using Glade
- Code to use Glade GUI

- Designing the GUI using Glade

- Summary

- A brief introduction to GTK+

- Chapter 6: Embedding Matplotlib in Qt 4
- Brief introduction to Qt 4 and PyQt4
- Embedding a Matplotlib figure in a Qt window
- Including a navigation toolbar

- Real-time update of a Matplotlib graph
- Embedding Matplotlib in a GUI made with Qt Designer
- Designing the GUI using Qt Designer
- Code to use the Qt Designer GUI
- Introduction to signals and slots
- Returning to the example

- Summary

- Chapter 7: Embedding Matplotlib in wxWidgets
- Brief introduction to wxWidgets and wxPython
- Embedding a Matplotlib figure in a wxFrame
- Including a navigation toolbar

- Real-time plots update
- Embedding Matplotlib in a GUI made with wxGlade
- Summary

- Chapter 8: Matplotlib for the Web
- Matplotlib and CGI
- What is CGI
- Configuring Apache for CGI execution
- Simple CGI example
- Matplotlib in a CGI script
- Passing parameters to a CGI script

- Matplotlib and mod_python
- What is mod_python
- Apache configuration for mod_python
- Matplotlib in a mod_python example
- Matplotlib and mod_python's Python Server Pages

- Web Frameworks and MVC
- Matplotlib and Django
- What is Django
- Matplotlib in a Django application

- Matplotlib and Pylons
- What is Pylons
- Matplotlib in a Pylons application

- Summary

- Matplotlib and CGI

- Chapter 9: Matplotlib in the Real World
- Plotting data from a database
- Plotting data from the Web
- Plotting data by parsing an Apache log file
- Plotting data from a CSV file
- Plotting extrapolated data using curve fitting
- Tools using Matplotlib
- NetworkX
- Mpmath

- Plotting geographical data
- First example
- Using satellite background
- Plot data over a map
- Plotting shapefiles with Basemap

- Summary

**Back to BOOK PAGE**

### Sandro Tosi

### Code Downloads

Download the code and support files for this book.

### Submit Errata

Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.

### Errata

- 2 submitted: last submission 02 Jul 2014**Errata type: Others | Page number: 85 | Errata date: 13 Nov 09**

Under the heading "A brief introduction to Matplotlib objects" in the table consider the fourth point as shown here: Object Description FigureCanvas Container class for the Figure instance Figure Container for one or more Axes instances Axes The rectangular areas to hold the basic elements, such as lines, text, and so on Line, Text, etc. The actual objects that make up the graph

**Errata type: Code | Page number: 60**

The keyword argument to select the number of bins is "bins". (This is on Python 3.3.2.)

### Sample chapters

You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

- Exploit the interactive computing environment of IPython to its fullest in collaboration with Matplotlib
- Learn line and point styles and master their customization, customization of axis ticks, and develop several plot types available in Matplotlib, such as histograms, bars, pie charts, polar charts, and so on
- Explore Object Oriented Matplotlib and learn how to add subplots, multiple figures, additional and shared axes, logarithmic scaled axes, data plotting with tick formatting and locators, text properties, fonts, LaTeX typewriting, and contour plots
- Get comfortable with Glade—a RAD tool—to quickly design a GUI for GTK+ and embed Matplotlib into it
- Make the most of Matplotlib within the wxWidgets framework, in particular using the wxPython bindings and design a GUI with wxGlade
- Use the Qt Designer to draw a simple GUI and refer it to your Python code to fit your needs
- Expose Matplotlib on the Web using CGI (through Apache mod_cgi), mod_python, Django, and Pylons in no time at all
- Profit from the real-world examples by simply following the stream—identify the data source, elaborate the data and generate the resulting plot

Providing appealing plots and graphs is an essential part of various fields such as scientific research, data analysis, and so on. Matplotlib, the Python 2D plotting library, is used to produce publication-quality figures in a variety of hardcopy formats and interactive environments across platforms. This book explains creating various plots, histograms, power spectra, bar charts, error charts, scatter-plots and much more using the powerful Matplotlib library to get impressive out-of-the-box results.

This book gives you a comprehensive tour of the key features of the Matplotlib Python 2D plotting library, right from the simplest concepts to the most advanced topics. You will discover how easy it is to produce professional-quality plots when you have this book to hand.

The book introduces the library in steps. First come the basics: introducing what the library is, its important prerequisites (and terminology), installing and configuring Matplotlib, and going through simple plots such as lines, grids, axes, and charts. Then we start with some introductory examples, and move ahead by discussing the various programming styles that Matplotlib allows, and several key features.

Further, the book presents an important section on embedding applications. You will be introduced to three of the best known GUI libraries—GTK+, Qt, and wxWidgets—and presented with the steps to implement to include Matplotlib in an application written using each of them. You will learn through an incremental approach: from a simple example that presents the peculiarities of the GUI library, to more complex ones, using GUI designer tools.

Because the Web permeates all of our activities, a part of the book is dedicated to showing how Matplotlib can be used in a web environment, and another section focuses on using Matplotlib with common Python web frameworks, namely, Pylons and Django. Last, but not least, you will go through real-world examples, where you will see some real situations in which you can use Matplotlib.

This book is a step-by-step tutorial to the Python 2D plotting library Matplotlib, which teaches you from the ground up to advanced levels with plenty of examples, code, and images.

This is a practical, hands-on book, with a lot of code and images. It presents the real code that generates every image and describes almost every single line of it, so that you know exactly what's going on.

Introductory, descriptive, and theoretical parts are mixed with examples, so that reading and understanding them is easy. All of the examples build gradually with code snippets, their explanations, and plot images where necessary with the complete code and output presented at the end.

This book is essentially for Python developers who have a good knowledge of Python; no knowledge of Matplotlib is required. You will be creating 2D plots using Matplotlib in no time at all.