Matplotlib provides Python with a graph drawing and data representation tool that is extremely flexible - in fact so flexible that it's hard for the newcomer to know where to start.

The following examples are very straightforward, but useful, graphs showing real data sets (from the second example onwards) of accesses to our web server last week, plotted against hour of the day. You'll be able to use almost identical code for your first experiments with matplotlib!

*The source code links each open in a separate window so that you can see the program and results at the same time*
This is a first "hello matplotlib world" type example that shows fundamental graphing of a data set.

[source]
In this second example, we have added some labelling and we're using a real data set. The line style and much of the rest remain at defaults.

[source]
Plotting differet data sets on the same axes, using a variety of line styles to tell them apart.

[source]
I've now added a second graph to the figure, so that you can see how different graphs can be combined.

[source]
Finally, the two graphs have been adjusted so that they're left and right, and you'll now see some very significant differences in the weekend and weekday pattern. Truely, a picture paints a thousand words.

[source]
Matplotlib is huge - you can do a lot with it, and it's a daunting task at first to find what you need; the above should help newcomers who already have a grounding in Python programming. There's an excellent reference manual once you get deeper in, and you may find the following useful too:

[link]Matplotlib HowTo FAQ

[link]Matplotlib Colours Interface

[link]PyPlot Tutorial

(written 2010-10-10)
21d0

Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles

Q913 - Object Orientation and General technical topics - Computer Graphics Principles [3262] Some SVG Elements, pixel and percent positioning - (2011-04-24)

[3261] Scalable Vector Graphics - easy, low bandwidth, high resolution, dynamic. - (2011-04-23)

[3211] Computer Graphics in PHP - World (incoming data) to Pixel (screen) conversion - (2011-03-24)

[3148] OpenGL / C / C++ - an example to get you started - (2011-01-26)

[3049] Computer Graphics is fun - even if Java Applets are Old Hat - (2010-11-13)

[2758] But what will you DO with all those pictures? - (2010-05-09)

[2633] Why do I teach niche skills rather than mainstream? - (2010-02-13)

[2245] Client side (Applet) and Server side (Servlet) Graphics in Java - (2009-06-17)

Y118 - Python - numpy, scipy and matplotlib [4445] Graphing presentations in Python - huge data, numpy and matplotlib - (2015-02-28)

[4440] A first graph with Matplotlib in Python - (2015-02-22)

[3554] Learning more about our web site - and learning how to learn about yours - (2011-12-17)

[2997] 3D graphics - web site usage - simple matplotlib and python example - (2010-10-12)

[2993] Arrays v Lists - what is the difference, why use one or the other - (2010-10-10)

[2991] Loading and saving data - Python / numpy - (2010-10-09)

[2990] What are numpy and scipy? - (2010-10-09)

Some other Articles

Copying - duplicating data, or just adding a name? Perl and Python comparedA river in Melksham is not just for boaters.Python - some common questions answered in code examplesMatplotlib - graphing in Python - teaching examplesOddballs in PlymouthNot mugged in London!Memorial to a day in 1999