Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

32
Matplotlib: DANSE kickoff John D. Hunter, Ph.D. http:// matplotlib.sourceforge.net
  • date post

    20-Jan-2016
  • Category

    Documents

  • view

    223
  • download

    1

Transcript of Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

Page 1: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

Matplotlib:DANSE kickoff John D. Hunter, Ph.D.

http://matplotlib.sourceforge.net

Page 2: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

Copy the great architecturesE Tufte

Page 3: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

# matplotlib 0.1~/python/matplot_gtk12> lsREADME matplotlib.py subplot_demo.pydata simple_plot.py view_data.pymatplot.py stock_demo.py vline_demo.py

# matplotlib 0.84

80 python modules

21 files of extension code

110,000 lines of code

189 examples

• 2-5 active developers at any time; 25 contributors

• ~5000 downloads/month

• ~500 mailing list subscribers

• 18 backends

Page 4: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

pylab interface• Plotting should just work

• Easy plots should be easy

• GUI / interactive complexity should be managed

• ipython to the rescue

IPython 0.6.12_cvs -- An enhanced Interactive Python.? -> Introduction to IPython's features.%magic -> Information about IPython's 'magic' % functions.help -> Python's own help system.object? -> Details about 'object'. ?object also works, ?? prints more.

Welcome to pylab, a matplotlib-based Python environment help(matplotlib) -> generic matplotlib information help(pylab) -> matlab-compatible commands from matplotlib help(plotting) -> plotting commands

In [1]: plot([1,2,3])

• Stateful• Procedural• Do-nothing

Page 5: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

bar demo

Page 6: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

stacked bar

Page 7: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

pie demo

Page 8: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

scatter demo

Page 9: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

histogram demo

Page 10: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

log demo

Page 11: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

polar demo

Page 12: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

layer image

Page 13: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

subplot demo

Page 14: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

axes demo

Page 15: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

legend demo

Page 16: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

text alignment

Page 17: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

mathtext demo2

Page 18: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .
Page 19: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

cylindrical equidistant, mercator, lambert conformal conic, lambert azimuthal equal area, albers equal area conic and stereographic.

basemaptoolkit

Page 20: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

finance demo

Page 21: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

EEG demo

Page 22: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

VTK demo

Page 23: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

Native mpl 3Dexamples/simple3d_oo.py

Page 24: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

The matplotlib APIfrom matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvasfrom matplotlib.figure import Figure

fig = Figure()canvas = FigureCanvas(fig)ax = fig.add_subplot(111)ax.plot([1,2,3]) aax.set_title('hi mom')ax.grid(True)ax.set_xlabel('time')ax.set_ylabel('volts')fig.savefig('test')

Page 25: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .
Page 26: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

backends

Page 27: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

# choose numeric or numarray from the shellC:> python myscript.py --numarray

# or in an rc file settingnumerix : ‘numpy’

The numerix module

Page 28: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

The GUI problem: the curse of python, part III

• GUI independent rendering• GUI neutral event handling

Page 29: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

font manager

• Cross platform font finding: win32, linux, OS X

• Configurable families: the font engine will pick the best font to match your requirements

• W3C compliant

font.family : sans-seriffont.style : normalfont.variant : normalfont.weight : mediumfont.stretch : normalfont.size : mediumfont.serif : New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Bitstream Vera Serif, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, seriffont.sans-serif : Lucida Grande, Verdana, Geneva, Lucida,

Page 30: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

tex = r'$\cal{R}\prod_{i=\alpha_{i+1}}^\infty a_I … \rm{sin}(2 \pi f x_i)$'text(1, 1.6, tex, fontsize=30)

mathtext demo

Page 31: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

MATPLOTLIB CREDITS (in order of appearance…)

• Jeremy O'Donoghue wrote the wx backend• Andrew Straw provided much of the log scaling architecture, the fill command, PIL support for

imshow, and provided many examples• Charles Twardy provided the impetus code for the legend class and has made countless bug

reports and suggestions for improvement.• Gary Ruben made many enhancements to errorbar to support x and y errorbar plots, and added a

number of new marker types to plot.• John Gill wrote the table class and examples• David Moore wrote the paint backend• Todd Miller contributed the TkAgg backend and the numerix module, which allows matplotlib to

work with either numeric or numarray. He also ported image support to the postscript backend, with much pain and suffering.

• Paul Barrett overhauled font management to provide an improved, free-standing, platform independent font manager with a WC3 compliant font finder and cache mechanism and ported truetype and mathtext to PS

• Perry Greenfield overhauled and modernized the goals and priorities page, implemented an improved colormap framework, and has provided many suggestions and a lot of insight to the overall design and organization of matplotlib.

• Jared Wahlstrand wrote the SVG backend

Page 32: Matplotlib: DANSE kickoff John D. Hunter, Ph.D. .

MATPLOTLIB CREDITS (continued)

• Steve Chaplin is the GTK maintainer and wrote the Cairo and GTKCairo backends• Jim Benson provided the patch to handle vertical mathttext• Gregory Lielens provided the FltkAgg backend and several patches for the frontend, including

contributions to toolbar2, and support for log ticking with alternate bases and major and minor log ticking

• Darren Dale did the work to do mathtext exponential labeling for log plots.• Paul Mcguire provided the pyparsing module on which mathtext relies, and made a number of

optimizations to the matplotlib mathtext grammar.• Fernando Perez has provided numerous bug reports and patches for cleaning up backend

imports and expanding pylab functionality, and provided matplotlib support in the pylab mode for ipython. He also provided the matshow command.

• Andrew Dalke of Dalke Scientific Software contributed the strftime formatting code to handle years earlier than 1900

• Jochen Voss maintained the PS backend and has contributed several bugfixes.• Nadia Dencheva of STScI provided the contouring and contour labeling code• Baptiste Carvello provided the key ideas in a patch for proper shared axes support that underlies

ganged plots and multiscale plots• Sigve Tjoraand Ted Drain and colleagues at the JPL collaborated on the QtAgg backend• Eric Firing added the contourf function and general contour refactoring