matplotlib: Bindings to Matplotlib; a Python plotting library

[ bsd3, graphics, library ] [ Propose Tags ]

Matplotlib is probably the most full featured plotting library out there. These bindings provide a quick, easy, and extensible way to use it in Haskell.

onscreen $ contourF (\a b -> sin (degreesRadians a) + cos (degreesRadians b)) (-100) 100 (-200) 200 10

[Skip to Readme]


Maintainer's Corner

For package maintainers and hackage trustees


Versions [RSS],,, 0.2.0, 0.2.1, 0.3.0, 0.4.0, 0.4.1, 0.4.3, 0.4.4, 0.4.5, 0.5.0, 0.6.0, 0.7.0, 0.7.1, 0.7.2, 0.7.3, 0.7.4, 0.7.5, 0.7.6, 0.7.7
Dependencies aeson, base (>=4.7 && <5), bytestring, containers, deepseq, filepath, process, split, temporary [details]
License BSD-3-Clause
Copyright 2017 Andrei Barbu
Author Andrei Barbu
Category Graphics
Home page
Source repo head: git clone
Uploaded by AndreiBarbu at 2017-10-13T07:52:39Z
Distributions LTSHaskell:0.7.7, NixOS:0.7.7, Stackage:0.7.7
Downloads 11424 total (59 in the last 30 days)
Rating 2.25 (votes: 2) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2017-10-13 [all 1 reports]

Readme for matplotlib-0.6.0

[back to package description]


Build Status Hackage

Haskell bindings to Python's Matplotlib. It's high time that Haskell had a fully-fledged plotting library!

matplotlib contour plot

Documentation is available on Hackage. For more examples see the tests.

{-# LANGUAGE ExtendedDefaultRules #-}

import Graphics.Matplotlib

degreesRadians a = a * pi / 180.0

main :: IO ()
main = do
  Right _ <- onscreen $ contourF (\a b -> sin (degreesRadians a) + cos (degreesRadians b)) (-100) 100 (-200) 200 10
  return ()

We need -XExtendedDefaultRules to avoid having to manually having to specify certain types.


You will need several python libraries to run this code which can be installed on Ubuntu machines with the following command:

sudo apt-get install -y python3-pip python3-matplotlib python3-numpy python-mpltoolkits.basemap

If you have instructions for other machines or OSes let me know. We require /usr/bin/python3 to be available; the path isn't configurable right now.

Once you have the prerequisites you can install using the standard incantation

cabal install matplotlib


Click on any of the examples below to go to the corresponding test that generates it. Depending on your matplotlib version default colors might be different.

integral griddata streamplot hist2DLog quadratic spines annotation corr bivariateNormal images labelled-histogram projections histogram pcolorlog scatter stacked legend errorbar line-options quiver-fancy contour boxplot show-matrix scatterhist hinton density violinplot histMulti cumulative polar hists tex eventplot line-function density-bandwidth quiver pie