-
Notifications
You must be signed in to change notification settings - Fork 60
Expand file tree
/
Copy pathwhats_new.html
More file actions
550 lines (521 loc) · 50 KB
/
whats_new.html
File metadata and controls
550 lines (521 loc) · 50 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>What’s new in Matplotlib — Matplotlib 2.2.0 documentation</title>
<link rel="stylesheet" href="../_static/mpl.css"
type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css"
type="text/css" />
<link rel="stylesheet" href="../_static/gallery.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '2.2.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<link rel="search" type="application/opensearchdescription+xml"
title="Search within Matplotlib 2.2.0 documentation"
href="../_static/opensearch.xml"/>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html"
/>
<link rel="search" title="Search" href="../search.html"
/>
<link rel="top" title="Matplotlib 2.2.0 documentation" href="../index.html" />
<link rel="up" title="User’s Guide" href="index.html" />
<link rel="next" title="List of changes to Matplotlib prior to 2015" href="prev_whats_new/changelog.html" />
<link rel="prev" title="Event handling and picking" href="event_handling.html" />
<link rel="canonical" href="https://matplotlib.org/3.4.3/users/whats_new.html" />
</head>
<body>
<div id="unreleased-message"> You are reading an old version of the documentation (v2.2.0). For the latest version see <a href="/stable/">https://matplotlib.org/stable/</a> </div>
<div style="background-color: white; text-align: left; padding: 10px 10px 15px 15px; position: relative;">
<a href="../index.html">
<div style="float: left; position: absolute; width: 496px; bottom: 0; padding-bottom: 24px"><span style="float: right; color: #789; background: white">Version 2.2.0</span></div>
<img src="../_static/logo2.png" height="125px" border="0" alt="matplotlib"/></a>
<!-- The "Fork me on github" ribbon -->
<div id="forkongithub"><a href="https://github.com/matplotlib/matplotlib">Fork me on GitHub</a></div>
</div>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="prev_whats_new/changelog.html" title="List of changes to Matplotlib prior to 2015"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="event_handling.html" title="Event handling and picking"
accesskey="P">previous</a> |</li>
<li><a href="../index.html">home</a>| </li>
<li><a href="../gallery/index.html">examples</a>| </li>
<li><a href="../tutorials/index.html">tutorials</a>| </li>
<li><a href="../api/pyplot_summary.html">pyplot</a>| </li>
<li><a href="../contents.html">docs</a> »</li>
<li><a href="index.html" accesskey="U">User’s Guide</a> »</li>
</ul>
</div>
<div class="sphinxsidebar">
<div class="sphinxsidebarwrapper">
<h3><a href="../contents.html">Table Of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">What’s new in Matplotlib</a><ul>
<li><a class="reference internal" href="#new-in-matplotlib-2-2">New in Matplotlib 2.2</a><ul>
<li><a class="reference internal" href="#constrained-layout-manager">Constrained Layout Manager</a><ul>
<li><a class="reference internal" href="#new-plt-figure-and-plt-subplots-kwarg-constrained-layout">New <code class="docutils literal notranslate"><span class="pre">plt.figure</span></code> and <code class="docutils literal notranslate"><span class="pre">plt.subplots</span></code> kwarg: <code class="docutils literal notranslate"><span class="pre">constrained_layout</span></code></a></li>
<li><a class="reference internal" href="#new-ax-set-position-behaviour">New <code class="docutils literal notranslate"><span class="pre">ax.set_position</span></code> behaviour</a></li>
<li><a class="reference internal" href="#new-figure-kwarg-for-gridspec">New <code class="docutils literal notranslate"><span class="pre">figure</span></code> kwarg for <code class="docutils literal notranslate"><span class="pre">GridSpec</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#xlabels-and-ylabels-can-now-be-automatically-aligned">xlabels and ylabels can now be automatically aligned</a></li>
<li><a class="reference internal" href="#axes-legends-now-included-in-tight-bbox">Axes legends now included in tight_bbox</a></li>
<li><a class="reference internal" href="#cividis-colormap">Cividis colormap</a></li>
<li><a class="reference internal" href="#new-style-colorblind-friendly-color-cycle">New style colorblind-friendly color cycle</a></li>
<li><a class="reference internal" href="#support-for-numpy-datetime64">Support for numpy.datetime64</a></li>
<li><a class="reference internal" href="#writing-animations-with-pillow">Writing animations with Pillow</a></li>
<li><a class="reference internal" href="#slider-ui-widget-can-snap-to-discrete-values">Slider UI widget can snap to discrete values</a></li>
<li><a class="reference internal" href="#capstyle-and-joinstyle-attributes-added-to-collection"><code class="docutils literal notranslate"><span class="pre">capstyle</span></code> and <code class="docutils literal notranslate"><span class="pre">joinstyle</span></code> attributes added to <code class="docutils literal notranslate"><span class="pre">Collection</span></code></a></li>
<li><a class="reference internal" href="#pad-kwarg-added-to-ax-set-title"><em>pad</em> kwarg added to ax.set_title</a></li>
<li><a class="reference internal" href="#comparison-of-2-colors-in-matplotlib">Comparison of 2 colors in Matplotlib</a></li>
<li><a class="reference internal" href="#autoscaling-a-polar-plot-snaps-to-the-origin">Autoscaling a polar plot snaps to the origin</a></li>
<li><a class="reference internal" href="#pathlike-support">PathLike support</a></li>
<li><a class="reference internal" href="#axes-tick-params-can-set-gridline-properties"><code class="docutils literal notranslate"><span class="pre">Axes.tick_params</span></code> can set gridline properties</a></li>
<li><a class="reference internal" href="#axes-imshow-clips-rgb-values-to-the-valid-range"><code class="docutils literal notranslate"><span class="pre">Axes.imshow</span></code> clips RGB values to the valid range</a></li>
<li><a class="reference internal" href="#properties-in-matplotlibrc-to-place-xaxis-and-yaxis-tick-labels">Properties in <code class="docutils literal notranslate"><span class="pre">matplotlibrc</span></code> to place xaxis and yaxis tick labels</a></li>
<li><a class="reference internal" href="#pgi-bindings-for-gtk3">PGI bindings for gtk3</a></li>
<li><a class="reference internal" href="#cairo-rendering-for-qt-wx-and-tk-canvases">Cairo rendering for Qt, WX, and Tk canvases</a></li>
<li><a class="reference internal" href="#added-support-for-qt-in-new-toolmanager">Added support for QT in new ToolManager</a></li>
<li><a class="reference internal" href="#tkagg-backend-reworked-to-support-pypy">TkAgg backend reworked to support PyPy</a></li>
<li><a class="reference internal" href="#python-logging-library-used-for-debug-output">Python logging library used for debug output</a></li>
<li><a class="reference internal" href="#improved-repr-for-transforms">Improved <code class="docutils literal notranslate"><span class="pre">repr</span></code> for <code class="docutils literal notranslate"><span class="pre">Transform</span></code>s</a></li>
</ul>
</li>
<li><a class="reference internal" href="#previous-whats-new">Previous Whats New</a></li>
</ul>
</li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../contents.html">Documentation overview</a><ul>
<li><a href="index.html">User’s Guide</a><ul>
<li>Previous: <a href="event_handling.html" title="previous chapter">Event handling and picking</a></li>
<li>Next: <a href="prev_whats_new/changelog.html" title="next chapter">List of changes to Matplotlib prior to 2015</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/users/whats_new.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body">
<div class="section" id="what-s-new-in-matplotlib">
<span id="whats-new"></span><h1><a class="toc-backref" href="#id1">What’s new in Matplotlib</a><a class="headerlink" href="#what-s-new-in-matplotlib" title="Permalink to this headline">¶</a></h1>
<p>For a list of all of the issues and pull requests since the last
revision, see the <a class="reference internal" href="github_stats.html#github-stats"><span class="std std-ref">GitHub Stats</span></a>.</p>
<div class="contents topic" id="table-of-contents">
<p class="topic-title first">Table of Contents</p>
<ul class="simple">
<li><a class="reference internal" href="#what-s-new-in-matplotlib" id="id1">What’s new in Matplotlib</a><ul>
<li><a class="reference internal" href="#new-in-matplotlib-2-2" id="id2">New in Matplotlib 2.2</a><ul>
<li><a class="reference internal" href="#constrained-layout-manager" id="id3">Constrained Layout Manager</a><ul>
<li><a class="reference internal" href="#new-plt-figure-and-plt-subplots-kwarg-constrained-layout" id="id4">New <code class="docutils literal notranslate"><span class="pre">plt.figure</span></code> and <code class="docutils literal notranslate"><span class="pre">plt.subplots</span></code> kwarg: <code class="docutils literal notranslate"><span class="pre">constrained_layout</span></code></a></li>
<li><a class="reference internal" href="#new-ax-set-position-behaviour" id="id5">New <code class="docutils literal notranslate"><span class="pre">ax.set_position</span></code> behaviour</a></li>
<li><a class="reference internal" href="#new-figure-kwarg-for-gridspec" id="id6">New <code class="docutils literal notranslate"><span class="pre">figure</span></code> kwarg for <code class="docutils literal notranslate"><span class="pre">GridSpec</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#xlabels-and-ylabels-can-now-be-automatically-aligned" id="id7">xlabels and ylabels can now be automatically aligned</a></li>
<li><a class="reference internal" href="#axes-legends-now-included-in-tight-bbox" id="id8">Axes legends now included in tight_bbox</a></li>
<li><a class="reference internal" href="#cividis-colormap" id="id9">Cividis colormap</a></li>
<li><a class="reference internal" href="#new-style-colorblind-friendly-color-cycle" id="id10">New style colorblind-friendly color cycle</a></li>
<li><a class="reference internal" href="#support-for-numpy-datetime64" id="id11">Support for numpy.datetime64</a></li>
<li><a class="reference internal" href="#writing-animations-with-pillow" id="id12">Writing animations with Pillow</a></li>
<li><a class="reference internal" href="#slider-ui-widget-can-snap-to-discrete-values" id="id13">Slider UI widget can snap to discrete values</a></li>
<li><a class="reference internal" href="#capstyle-and-joinstyle-attributes-added-to-collection" id="id14"><code class="docutils literal notranslate"><span class="pre">capstyle</span></code> and <code class="docutils literal notranslate"><span class="pre">joinstyle</span></code> attributes added to <code class="xref py py-obj docutils literal notranslate"><span class="pre">Collection</span></code></a></li>
<li><a class="reference internal" href="#pad-kwarg-added-to-ax-set-title" id="id15"><em>pad</em> kwarg added to ax.set_title</a></li>
<li><a class="reference internal" href="#comparison-of-2-colors-in-matplotlib" id="id16">Comparison of 2 colors in Matplotlib</a></li>
<li><a class="reference internal" href="#autoscaling-a-polar-plot-snaps-to-the-origin" id="id17">Autoscaling a polar plot snaps to the origin</a></li>
<li><a class="reference internal" href="#pathlike-support" id="id18">PathLike support</a></li>
<li><a class="reference internal" href="#axes-tick-params-can-set-gridline-properties" id="id19"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Axes.tick_params</span></code> can set gridline properties</a></li>
<li><a class="reference internal" href="#axes-imshow-clips-rgb-values-to-the-valid-range" id="id20"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Axes.imshow</span></code> clips RGB values to the valid range</a></li>
<li><a class="reference internal" href="#properties-in-matplotlibrc-to-place-xaxis-and-yaxis-tick-labels" id="id21">Properties in <code class="xref py py-obj docutils literal notranslate"><span class="pre">matplotlibrc</span></code> to place xaxis and yaxis tick labels</a></li>
<li><a class="reference internal" href="#pgi-bindings-for-gtk3" id="id22">PGI bindings for gtk3</a></li>
<li><a class="reference internal" href="#cairo-rendering-for-qt-wx-and-tk-canvases" id="id23">Cairo rendering for Qt, WX, and Tk canvases</a></li>
<li><a class="reference internal" href="#added-support-for-qt-in-new-toolmanager" id="id24">Added support for QT in new ToolManager</a></li>
<li><a class="reference internal" href="#tkagg-backend-reworked-to-support-pypy" id="id25">TkAgg backend reworked to support PyPy</a></li>
<li><a class="reference internal" href="#python-logging-library-used-for-debug-output" id="id26">Python logging library used for debug output</a></li>
<li><a class="reference internal" href="#improved-repr-for-transforms" id="id27">Improved <a class="reference external" href="https://docs.python.org/3/library/functions.html#repr" title="(in Python v3.6)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">repr</span></code></a> for <code class="xref py py-obj docutils literal notranslate"><span class="pre">Transform</span></code>s</a></li>
</ul>
</li>
<li><a class="reference internal" href="#previous-whats-new" id="id28">Previous Whats New</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="new-in-matplotlib-2-2">
<h2><a class="toc-backref" href="#id2">New in Matplotlib 2.2</a><a class="headerlink" href="#new-in-matplotlib-2-2" title="Permalink to this headline">¶</a></h2>
<div class="section" id="constrained-layout-manager">
<h3><a class="toc-backref" href="#id3">Constrained Layout Manager</a><a class="headerlink" href="#constrained-layout-manager" title="Permalink to this headline">¶</a></h3>
<div class="admonition warning">
<p class="first admonition-title">Warning</p>
<p class="last">Constrained Layout is <strong>experimental</strong>. The
behaviour and API are subject to change, or the whole functionality
may be removed without a deprecation period.</p>
</div>
<p>A new method to automatically decide spacing between subplots and their
organizing <code class="docutils literal notranslate"><span class="pre">GridSpec</span></code> instances has been added. It is meant to
replace the venerable <code class="docutils literal notranslate"><span class="pre">tight_layout</span></code> method. It is invoked via
a new <code class="docutils literal notranslate"><span class="pre">constrained_layout=True</span></code> kwarg to
<a class="reference internal" href="../api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure" title="matplotlib.figure.Figure"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Figure</span></code></a> or <code class="xref py py-obj docutils literal notranslate"><span class="pre">subplots</span></code>.</p>
<p>There are new <code class="docutils literal notranslate"><span class="pre">rcParams</span></code> for this package, and spacing can be
more finely tuned with the new <a class="reference internal" href="../api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure.set_constrained_layout_pads" title="matplotlib.figure.Figure.set_constrained_layout_pads"><code class="xref py py-obj docutils literal notranslate"><span class="pre">set_constrained_layout_pads</span></code></a>.</p>
<p>Features include:</p>
<blockquote>
<div><ul class="simple">
<li>Automatic spacing for subplots with a fixed-size padding in inches around
subplots and all their decorators, and space between as a fraction
of subplot size between subplots.</li>
<li>Spacing for <code class="xref py py-obj docutils literal notranslate"><span class="pre">suptitle</span></code>, and colorbars that are attached to
more than one axes.</li>
<li>Nested <a class="reference internal" href="../api/_as_gen/matplotlib.gridspec.GridSpec.html#matplotlib.gridspec.GridSpec" title="matplotlib.gridspec.GridSpec"><code class="xref py py-obj docutils literal notranslate"><span class="pre">GridSpec</span></code></a> layouts using <a class="reference internal" href="../api/_as_gen/matplotlib.gridspec.GridSpecFromSubplotSpec.html#matplotlib.gridspec.GridSpecFromSubplotSpec" title="matplotlib.gridspec.GridSpecFromSubplotSpec"><code class="xref py py-obj docutils literal notranslate"><span class="pre">GridSpecFromSubplotSpec</span></code></a>.</li>
</ul>
<p>For more details and capabilities please see the new tutorial:
<a class="reference internal" href="../tutorials/intermediate/constrainedlayout_guide.html"><span class="doc">Constrained Layout Guide</span></a></p>
</div></blockquote>
<p>Note the new API to access this:</p>
<div class="section" id="new-plt-figure-and-plt-subplots-kwarg-constrained-layout">
<h4><a class="toc-backref" href="#id4">New <code class="docutils literal notranslate"><span class="pre">plt.figure</span></code> and <code class="docutils literal notranslate"><span class="pre">plt.subplots</span></code> kwarg: <code class="docutils literal notranslate"><span class="pre">constrained_layout</span></code></a><a class="headerlink" href="#new-plt-figure-and-plt-subplots-kwarg-constrained-layout" title="Permalink to this headline">¶</a></h4>
<p><a class="reference internal" href="../api/_as_gen/matplotlib.pyplot.figure.html#matplotlib.pyplot.figure" title="matplotlib.pyplot.figure"><code class="xref py py-meth docutils literal notranslate"><span class="pre">figure()</span></code></a> and <a class="reference internal" href="../api/_as_gen/matplotlib.pyplot.subplots.html#matplotlib.pyplot.subplots" title="matplotlib.pyplot.subplots"><code class="xref py py-meth docutils literal notranslate"><span class="pre">subplots()</span></code></a>
can now be called with <code class="docutils literal notranslate"><span class="pre">constrained_layout=True</span></code> kwarg to enable
constrained_layout.</p>
</div>
<div class="section" id="new-ax-set-position-behaviour">
<h4><a class="toc-backref" href="#id5">New <code class="docutils literal notranslate"><span class="pre">ax.set_position</span></code> behaviour</a><a class="headerlink" href="#new-ax-set-position-behaviour" title="Permalink to this headline">¶</a></h4>
<p><code class="xref py py-meth docutils literal notranslate"><span class="pre">set_position()</span></code> now makes the specified axis no
longer responsive to <code class="docutils literal notranslate"><span class="pre">constrained_layout</span></code>, consistent with the idea that the
user wants to place an axis manually.</p>
<p>Internally, this means that old <code class="docutils literal notranslate"><span class="pre">ax.set_position</span></code> calls <em>inside</em> the library
are changed to private <code class="docutils literal notranslate"><span class="pre">ax._set_position</span></code> calls so that
<code class="docutils literal notranslate"><span class="pre">constrained_layout</span></code> will still work with these axes.</p>
</div>
<div class="section" id="new-figure-kwarg-for-gridspec">
<h4><a class="toc-backref" href="#id6">New <code class="docutils literal notranslate"><span class="pre">figure</span></code> kwarg for <code class="docutils literal notranslate"><span class="pre">GridSpec</span></code></a><a class="headerlink" href="#new-figure-kwarg-for-gridspec" title="Permalink to this headline">¶</a></h4>
<p>In order to facilitate <code class="docutils literal notranslate"><span class="pre">constrained_layout</span></code>, <code class="docutils literal notranslate"><span class="pre">GridSpec</span></code> now accepts a
<code class="docutils literal notranslate"><span class="pre">figure</span></code> keyword. This is backwards compatible, in that not supplying this
will simply cause <code class="docutils literal notranslate"><span class="pre">constrained_layout</span></code> to not operate on the subplots
orgainzed by this <code class="docutils literal notranslate"><span class="pre">GridSpec</span></code> instance. Routines that use <code class="docutils literal notranslate"><span class="pre">GridSpec</span></code> (e.g.
<code class="docutils literal notranslate"><span class="pre">fig.subplots</span></code>) have been modified to pass the figure to <code class="docutils literal notranslate"><span class="pre">GridSpec</span></code>.</p>
</div>
</div>
<div class="section" id="xlabels-and-ylabels-can-now-be-automatically-aligned">
<h3><a class="toc-backref" href="#id7">xlabels and ylabels can now be automatically aligned</a><a class="headerlink" href="#xlabels-and-ylabels-can-now-be-automatically-aligned" title="Permalink to this headline">¶</a></h3>
<p>Subplot axes <code class="docutils literal notranslate"><span class="pre">ylabels</span></code> can be misaligned horizontally if the tick labels
are very different widths. The same can happen to <code class="docutils literal notranslate"><span class="pre">xlabels</span></code> if the
ticklabels are rotated on one subplot (for instance). The new methods
on the <code class="xref py py-obj docutils literal notranslate"><span class="pre">Figure</span></code> class: <code class="xref py py-obj docutils literal notranslate"><span class="pre">Figure.align_xlabels</span></code> and <code class="xref py py-obj docutils literal notranslate"><span class="pre">Figure.align_ylabels</span></code>
will now align these labels horizontally or vertically. If the user only
wants to align some axes, a list of axes can be passed. If no list is
passed, the algorithm looks at all the labels on the figure.</p>
<p>Only labels that have the same subplot locations are aligned. i.e. the
ylabels are aligned only if the subplots are in the same column of the
subplot layout.</p>
<p>Alignemnt is persistent and automatic after these are called.</p>
<p>A convenience wrapper <code class="xref py py-obj docutils literal notranslate"><span class="pre">Figure.align_labels</span></code> calls both functions at once.</p>
<p>(<a class="reference external" href="../users/whats_new-1.py">Source code</a>, <a class="reference external" href="../users/whats_new-1.png">png</a>, <a class="reference external" href="../users/whats_new-1.pdf">pdf</a>)</p>
<div class="figure">
<img alt="../_images/whats_new-1.png" src="../_images/whats_new-1.png" />
</div>
</div>
<div class="section" id="axes-legends-now-included-in-tight-bbox">
<h3><a class="toc-backref" href="#id8">Axes legends now included in tight_bbox</a><a class="headerlink" href="#axes-legends-now-included-in-tight-bbox" title="Permalink to this headline">¶</a></h3>
<p>Legends created via <code class="docutils literal notranslate"><span class="pre">ax.legend</span></code> can sometimes overspill the limits of
the axis. Tools like <code class="docutils literal notranslate"><span class="pre">fig.tight_layout()</span></code> and
<code class="docutils literal notranslate"><span class="pre">fig.savefig(bbox_inches='tight')</span></code> would clip these legends. A change
was made to include them in the <code class="docutils literal notranslate"><span class="pre">tight</span></code> calculations.</p>
</div>
<div class="section" id="cividis-colormap">
<h3><a class="toc-backref" href="#id9">Cividis colormap</a><a class="headerlink" href="#cividis-colormap" title="Permalink to this headline">¶</a></h3>
<p>A new dark blue/yellow colormap named ‘cividis’ was added. Like
viridis, cividis is perceptually uniform and colorblind
friendly. However, cividis also goes a step further: not only is it
usable by colorblind users, it should actually look effectively
identical to colorblind and non-colorblind users. For more details,
see Nunez J, Anderton C, and Renslow R. (submitted). Optimizing
colormaps with consideration for color vision deficiency to enable
accurate interpretation of scientific data.”</p>
<p>(<a class="reference external" href="../users/whats_new-2.py">Source code</a>, <a class="reference external" href="../users/whats_new-2.png">png</a>, <a class="reference external" href="../users/whats_new-2.pdf">pdf</a>)</p>
<div class="figure">
<img alt="../_images/whats_new-2.png" src="../_images/whats_new-2.png" />
</div>
</div>
<div class="section" id="new-style-colorblind-friendly-color-cycle">
<h3><a class="toc-backref" href="#id10">New style colorblind-friendly color cycle</a><a class="headerlink" href="#new-style-colorblind-friendly-color-cycle" title="Permalink to this headline">¶</a></h3>
<p>A new style defining a color cycle has been added,
tableau-colorblind10, to provide another option for
colorblind-friendly plots. A demonstration of this new
style can be found in the <a class="reference external" href="https://matplotlib.org/gallery/style_sheets/style_sheets_reference.html">reference</a> of style sheets. To
load this color cycle in place of the default one:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
<span class="n">plt</span><span class="o">.</span><span class="n">style</span><span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="s1">'tableau-colorblind10'</span><span class="p">)</span>
</pre></div>
</div>
</div>
<div class="section" id="support-for-numpy-datetime64">
<h3><a class="toc-backref" href="#id11">Support for numpy.datetime64</a><a class="headerlink" href="#support-for-numpy-datetime64" title="Permalink to this headline">¶</a></h3>
<p>Matplotlib has supported <a class="reference external" href="https://docs.python.org/3/library/datetime.html#datetime.datetime" title="(in Python v3.6)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">datetime.datetime</span></code></a> dates for a long time in
<a class="reference internal" href="../api/dates_api.html#module-matplotlib.dates" title="matplotlib.dates"><code class="xref py py-obj docutils literal notranslate"><span class="pre">matplotlib.dates</span></code></a>. We
now support <code class="xref py py-obj docutils literal notranslate"><span class="pre">numpy.datetime64</span></code> dates as well. Anywhere that
<code class="xref py py-obj docutils literal notranslate"><span class="pre">dateime.datetime</span></code> could be used, <code class="xref py py-obj docutils literal notranslate"><span class="pre">numpy.datetime64</span></code> can be used. eg:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">time</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="s1">'2005-02-01'</span><span class="p">,</span> <span class="s1">'2005-02-02'</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="s1">'datetime64[h]'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">time</span><span class="p">)</span>
</pre></div>
</div>
</div>
<div class="section" id="writing-animations-with-pillow">
<h3><a class="toc-backref" href="#id12">Writing animations with Pillow</a><a class="headerlink" href="#writing-animations-with-pillow" title="Permalink to this headline">¶</a></h3>
<p>It is now possible to use Pillow as an animation writer. Supported output
formats are currently gif (Pillow>=3.4) and webp (Pillow>=5.0). Use e.g. as</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">division</span>
<span class="kn">from</span> <span class="nn">matplotlib</span> <span class="k">import</span> <span class="n">pyplot</span> <span class="k">as</span> <span class="n">plt</span>
<span class="kn">from</span> <span class="nn">matplotlib.animation</span> <span class="k">import</span> <span class="n">FuncAnimation</span><span class="p">,</span> <span class="n">PillowWriter</span>
<span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">()</span>
<span class="n">line</span><span class="p">,</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">([</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">])</span>
<span class="k">def</span> <span class="nf">animate</span><span class="p">(</span><span class="n">i</span><span class="p">):</span>
<span class="n">line</span><span class="o">.</span><span class="n">set_ydata</span><span class="p">([</span><span class="mi">0</span><span class="p">,</span> <span class="n">i</span> <span class="o">/</span> <span class="mi">20</span><span class="p">])</span>
<span class="k">return</span> <span class="p">[</span><span class="n">line</span><span class="p">]</span>
<span class="n">anim</span> <span class="o">=</span> <span class="n">FuncAnimation</span><span class="p">(</span><span class="n">fig</span><span class="p">,</span> <span class="n">animate</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="n">blit</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="n">anim</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="s2">"movie.gif"</span><span class="p">,</span> <span class="n">writer</span><span class="o">=</span><span class="n">PillowWriter</span><span class="p">(</span><span class="n">fps</span><span class="o">=</span><span class="mi">24</span><span class="p">))</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>
</div>
</div>
<div class="section" id="slider-ui-widget-can-snap-to-discrete-values">
<h3><a class="toc-backref" href="#id13">Slider UI widget can snap to discrete values</a><a class="headerlink" href="#slider-ui-widget-can-snap-to-discrete-values" title="Permalink to this headline">¶</a></h3>
<p>The slider UI widget can take the optional argument <em>valstep</em>. Doing so
forces the slider to take on only discrete values, starting from <em>valmin</em> and
counting up to <em>valmax</em> with steps of size <em>valstep</em>.</p>
<p>If <em>closedmax==True</em>, then the slider will snap to <em>valmax</em> as well.</p>
</div>
<div class="section" id="capstyle-and-joinstyle-attributes-added-to-collection">
<h3><a class="toc-backref" href="#id14"><code class="docutils literal notranslate"><span class="pre">capstyle</span></code> and <code class="docutils literal notranslate"><span class="pre">joinstyle</span></code> attributes added to <code class="xref py py-obj docutils literal notranslate"><span class="pre">Collection</span></code></a><a class="headerlink" href="#capstyle-and-joinstyle-attributes-added-to-collection" title="Permalink to this headline">¶</a></h3>
<p>The <code class="xref py py-obj docutils literal notranslate"><span class="pre">Collection</span></code> class now has customizable <code class="docutils literal notranslate"><span class="pre">capstyle</span></code> and <code class="docutils literal notranslate"><span class="pre">joinstyle</span></code>
attributes. This allows the user for example to set the <code class="docutils literal notranslate"><span class="pre">capstyle</span></code> of
errorbars.</p>
</div>
<div class="section" id="pad-kwarg-added-to-ax-set-title">
<h3><a class="toc-backref" href="#id15"><em>pad</em> kwarg added to ax.set_title</a><a class="headerlink" href="#pad-kwarg-added-to-ax-set-title" title="Permalink to this headline">¶</a></h3>
<p>The method <code class="xref py py-obj docutils literal notranslate"><span class="pre">axes.set_title</span></code> now has a <em>pad</em> kwarg, that specifies the
distance from the top of an axes to where the title is drawn. The units
of <em>pad</em> is points, and the default is the value of the (already-existing)
<code class="docutils literal notranslate"><span class="pre">rcParams['axes.titlepad']</span></code>.</p>
</div>
<div class="section" id="comparison-of-2-colors-in-matplotlib">
<h3><a class="toc-backref" href="#id16">Comparison of 2 colors in Matplotlib</a><a class="headerlink" href="#comparison-of-2-colors-in-matplotlib" title="Permalink to this headline">¶</a></h3>
<p>As the colors in Matplotlib can be specified with a wide variety of ways, the
<code class="xref py py-obj docutils literal notranslate"><span class="pre">matplotlib.colors.same_color</span></code> method has been added which checks if
two <a class="reference internal" href="../api/colors_api.html#module-matplotlib.colors" title="matplotlib.colors"><code class="xref py py-obj docutils literal notranslate"><span class="pre">colors</span></code></a> are the same.</p>
</div>
<div class="section" id="autoscaling-a-polar-plot-snaps-to-the-origin">
<h3><a class="toc-backref" href="#id17">Autoscaling a polar plot snaps to the origin</a><a class="headerlink" href="#autoscaling-a-polar-plot-snaps-to-the-origin" title="Permalink to this headline">¶</a></h3>
<p>Setting the limits automatically in a polar plot now snaps the radial limit
to zero if the automatic limit is nearby. This means plotting from zero doesn’t
automatically scale to include small negative values on the radial axis.</p>
<p>The limits can still be set manually in the usual way using <code class="xref py py-obj docutils literal notranslate"><span class="pre">set_ylim</span></code>.</p>
</div>
<div class="section" id="pathlike-support">
<h3><a class="toc-backref" href="#id18">PathLike support</a><a class="headerlink" href="#pathlike-support" title="Permalink to this headline">¶</a></h3>
<p>On Python 3.6+, <a class="reference internal" href="../api/_as_gen/matplotlib.pyplot.savefig.html#matplotlib.pyplot.savefig" title="matplotlib.pyplot.savefig"><code class="xref py py-obj docutils literal notranslate"><span class="pre">savefig</span></code></a>, <a class="reference internal" href="../api/_as_gen/matplotlib.pyplot.imsave.html#matplotlib.pyplot.imsave" title="matplotlib.pyplot.imsave"><code class="xref py py-obj docutils literal notranslate"><span class="pre">imsave</span></code></a>,
<a class="reference internal" href="../api/_as_gen/matplotlib.pyplot.imread.html#matplotlib.pyplot.imread" title="matplotlib.pyplot.imread"><code class="xref py py-obj docutils literal notranslate"><span class="pre">imread</span></code></a>, and animation writers now accept <a class="reference external" href="https://docs.python.org/3/library/os.html#os.PathLike" title="(in Python v3.6)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">os.PathLike</span></code></a>s
as input.</p>
</div>
<div class="section" id="axes-tick-params-can-set-gridline-properties">
<h3><a class="toc-backref" href="#id19"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Axes.tick_params</span></code> can set gridline properties</a><a class="headerlink" href="#axes-tick-params-can-set-gridline-properties" title="Permalink to this headline">¶</a></h3>
<p><code class="xref py py-obj docutils literal notranslate"><span class="pre">Tick</span></code> objects hold gridlines as well as the tick mark and its label.
<code class="xref py py-obj docutils literal notranslate"><span class="pre">Axis.set_tick_params</span></code>, <code class="xref py py-obj docutils literal notranslate"><span class="pre">Axes.tick_params</span></code> and <code class="xref py py-obj docutils literal notranslate"><span class="pre">pyplot.tick_params</span></code>
now have keyword arguments ‘grid_color’, ‘grid_alpha’, ‘grid_linewidth’,
and ‘grid_linestyle’ for overriding the defaults in <code class="xref py py-obj docutils literal notranslate"><span class="pre">rcParams</span></code>:
‘grid.color’, etc.</p>
</div>
<div class="section" id="axes-imshow-clips-rgb-values-to-the-valid-range">
<h3><a class="toc-backref" href="#id20"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Axes.imshow</span></code> clips RGB values to the valid range</a><a class="headerlink" href="#axes-imshow-clips-rgb-values-to-the-valid-range" title="Permalink to this headline">¶</a></h3>
<p>When <code class="xref py py-obj docutils literal notranslate"><span class="pre">Axes.imshow</span></code> is passed an RGB or RGBA value with out-of-range
values, it now logs a warning and clips them to the valid range.
The old behaviour, wrapping back in to the range, often hid outliers
and made interpreting RGB images unreliable.</p>
</div>
<div class="section" id="properties-in-matplotlibrc-to-place-xaxis-and-yaxis-tick-labels">
<h3><a class="toc-backref" href="#id21">Properties in <code class="xref py py-obj docutils literal notranslate"><span class="pre">matplotlibrc</span></code> to place xaxis and yaxis tick labels</a><a class="headerlink" href="#properties-in-matplotlibrc-to-place-xaxis-and-yaxis-tick-labels" title="Permalink to this headline">¶</a></h3>
<p>Introducing four new boolean properties in <code class="xref py py-obj docutils literal notranslate"><span class="pre">matplotlibrc</span></code> for default
positions of xaxis and yaxis tick labels, namely,
<code class="xref py py-obj docutils literal notranslate"><span class="pre">xtick.labeltop</span></code>, <code class="xref py py-obj docutils literal notranslate"><span class="pre">xtick.labelbottom</span></code>, <code class="xref py py-obj docutils literal notranslate"><span class="pre">ytick.labelright</span></code> and
<code class="xref py py-obj docutils literal notranslate"><span class="pre">ytick.labelleft</span></code>. These can also be changed in rcParams.</p>
</div>
<div class="section" id="pgi-bindings-for-gtk3">
<h3><a class="toc-backref" href="#id22">PGI bindings for gtk3</a><a class="headerlink" href="#pgi-bindings-for-gtk3" title="Permalink to this headline">¶</a></h3>
<p>The GTK3 backends can now use <a class="reference external" href="https://pgi.readthedocs.io/en/latest/">PGI</a> instead of <a class="reference external" href="http://pygobject.readthedocs.io/en/latest/#">PyGObject</a>. PGI is a fairly
incomplete binding for GObject, thus its use is not recommended; its main
benefit is its availability on Travis (thus allowing CI testing for the gtk3agg
and gtk3cairo backends).</p>
<p>The binding selection rules are as follows:
- if <code class="docutils literal notranslate"><span class="pre">gi</span></code> has already been imported, use it; else
- if <code class="docutils literal notranslate"><span class="pre">pgi</span></code> has already been imported, use it; else
- if <code class="docutils literal notranslate"><span class="pre">gi</span></code> can be imported, use it; else
- if <code class="docutils literal notranslate"><span class="pre">pgi</span></code> can be imported, use it; else
- error out.</p>
<p>Thus, to force usage of PGI when both bindings are installed, import it first.</p>
</div>
<div class="section" id="cairo-rendering-for-qt-wx-and-tk-canvases">
<h3><a class="toc-backref" href="#id23">Cairo rendering for Qt, WX, and Tk canvases</a><a class="headerlink" href="#cairo-rendering-for-qt-wx-and-tk-canvases" title="Permalink to this headline">¶</a></h3>
<p>The new <code class="docutils literal notranslate"><span class="pre">Qt4Cairo</span></code>, <code class="docutils literal notranslate"><span class="pre">Qt5Cairo</span></code>, <code class="docutils literal notranslate"><span class="pre">WXCairo</span></code>, and <code class="docutils literal notranslate"><span class="pre">TkCairo</span></code>
backends allow Qt, Wx, and Tk canvases to use Cairo rendering instead of
Agg.</p>
</div>
<div class="section" id="added-support-for-qt-in-new-toolmanager">
<h3><a class="toc-backref" href="#id24">Added support for QT in new ToolManager</a><a class="headerlink" href="#added-support-for-qt-in-new-toolmanager" title="Permalink to this headline">¶</a></h3>
<p>Now it is possible to use the ToolManager with Qt5
For example</p>
<blockquote>
<div><p>import matplotlib</p>
<p>matplotlib.use(‘QT5AGG’)
matplotlib.rcParams[‘toolbar’] = ‘toolmanager’
import matplotlib.pyplot as plt</p>
<p>plt.plot([1,2,3])
plt.show()</p>
</div></blockquote>
<p>Treat the new Tool classes experimental for now, the API will likely change and perhaps the rcParam as well</p>
<p>The main example <code class="xref py py-obj docutils literal notranslate"><span class="pre">examples/user_interfaces/toolmanager_sgskip.py</span></code> shows more
details, just adjust the header to use QT instead of GTK3</p>
</div>
<div class="section" id="tkagg-backend-reworked-to-support-pypy">
<h3><a class="toc-backref" href="#id25">TkAgg backend reworked to support PyPy</a><a class="headerlink" href="#tkagg-backend-reworked-to-support-pypy" title="Permalink to this headline">¶</a></h3>
<p><a class="reference external" href="https:/www.pypy.org">PyPy</a> can now plot using the TkAgg backend, supported on PyPy 5.9
and greater (both PyPy for python 2.7 and PyPy for python 3.5).</p>
</div>
<div class="section" id="python-logging-library-used-for-debug-output">
<h3><a class="toc-backref" href="#id26">Python logging library used for debug output</a><a class="headerlink" href="#python-logging-library-used-for-debug-output" title="Permalink to this headline">¶</a></h3>
<p>Matplotlib has in the past (sporadically) used an internal
verbose-output reporter. This version converts those calls to using the
standard python <a class="reference external" href="https://docs.python.org/3/library/logging.html#module-logging" title="(in Python v3.6)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">logging</span></code></a> library.</p>
<p>Support for the old <code class="docutils literal notranslate"><span class="pre">rcParams</span></code> <code class="docutils literal notranslate"><span class="pre">verbose.level</span></code> and <code class="docutils literal notranslate"><span class="pre">verbose.fileo</span></code> is
dropped.</p>
<p>The command-line options <code class="docutils literal notranslate"><span class="pre">--verbose-helpful</span></code> and <code class="docutils literal notranslate"><span class="pre">--verbose-debug</span></code> are
still accepted, but deprecated. They are now equivalent to setting
<code class="docutils literal notranslate"><span class="pre">logging.INFO</span></code> and <code class="docutils literal notranslate"><span class="pre">logging.DEBUG</span></code>.</p>
<p>The logger’s root name is <code class="docutils literal notranslate"><span class="pre">matplotlib</span></code> and can be accessed from programs
as:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">logging</span>
<span class="n">mlog</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s1">'matplotlib'</span><span class="p">)</span>
</pre></div>
</div>
<p>Instructions for basic usage are in <a class="reference internal" href="../faq/troubleshooting_faq.html#troubleshooting-faq"><span class="std std-ref">Troubleshooting</span></a> and for
developers in <a class="reference internal" href="../devel/contributing.html#contributing"><span class="std std-ref">Contributing</span></a>.</p>
</div>
<div class="section" id="improved-repr-for-transforms">
<h3><a class="toc-backref" href="#id27">Improved <a class="reference external" href="https://docs.python.org/3/library/functions.html#repr" title="(in Python v3.6)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">repr</span></code></a> for <code class="xref py py-obj docutils literal notranslate"><span class="pre">Transform</span></code>s</a><a class="headerlink" href="#improved-repr-for-transforms" title="Permalink to this headline">¶</a></h3>
<p><code class="xref py py-obj docutils literal notranslate"><span class="pre">Transform</span></code>s now indent their <a class="reference external" href="https://docs.python.org/3/library/functions.html#repr" title="(in Python v3.6)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">repr</span></code></a>s in a more legible manner:</p>
<div class="highlight-ipython notranslate"><div class="highlight"><pre><span></span><span class="gp">In [1]: </span><span class="n">l</span><span class="p">,</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">([]);</span> <span class="n">l</span><span class="o">.</span><span class="n">get_transform</span><span class="p">()</span>
<span class="gh">Out[1]:</span>
<span class="go">CompositeGenericTransform(</span>
<span class="go"> TransformWrapper(</span>
<span class="go"> BlendedAffine2D(</span>
<span class="go"> IdentityTransform(),</span>
<span class="go"> IdentityTransform())),</span>
<span class="go"> CompositeGenericTransform(</span>
<span class="go"> BboxTransformFrom(</span>
<span class="go"> TransformedBbox(</span>
<span class="go"> Bbox(x0=-0.05500000000000001, y0=-0.05500000000000001, x1=0.05500000000000001, y1=0.05500000000000001),</span>
<span class="go"> TransformWrapper(</span>
<span class="go"> BlendedAffine2D(</span>
<span class="go"> IdentityTransform(),</span>
<span class="go"> IdentityTransform())))),</span>
<span class="go"> BboxTransformTo(</span>
<span class="go"> TransformedBbox(</span>
<span class="go"> Bbox(x0=0.125, y0=0.10999999999999999, x1=0.9, y1=0.88),</span>
<span class="go"> BboxTransformTo(</span>
<span class="go"> TransformedBbox(</span>
<span class="go"> Bbox(x0=0.0, y0=0.0, x1=6.4, y1=4.8),</span>
<span class="go"> Affine2D(</span>
<span class="go"> [[ 100. 0. 0.]</span>
<span class="go"> [ 0. 100. 0.]</span>
<span class="go"> [ 0. 0. 1.]])))))))</span>
</pre></div>
</div>
</div>
</div>
<div class="section" id="previous-whats-new">
<h2><a class="toc-backref" href="#id28">Previous Whats New</a><a class="headerlink" href="#previous-whats-new" title="Permalink to this headline">¶</a></h2>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="prev_whats_new/whats_new_2.1.0.html">New in Matplotlib 2.1.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="prev_whats_new/whats_new_2.0.0.html">New in matplotlib 2.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="prev_whats_new/whats_new_1.5.html">New in matplotlib 1.5</a></li>
<li class="toctree-l1"><a class="reference internal" href="prev_whats_new/whats_new_1.4.html">New in matplotlib 1.4</a></li>
<li class="toctree-l1"><a class="reference internal" href="prev_whats_new/whats_new_1.3.html">New in matplotlib 1.3</a></li>
<li class="toctree-l1"><a class="reference internal" href="prev_whats_new/whats_new_1.2.2.html">New in matplotlib 1.2.2</a></li>
<li class="toctree-l1"><a class="reference internal" href="prev_whats_new/whats_new_1.2.html">New in matplotlib 1.2</a></li>
<li class="toctree-l1"><a class="reference internal" href="prev_whats_new/whats_new_1.1.html">New in matplotlib 1.1</a></li>
<li class="toctree-l1"><a class="reference internal" href="prev_whats_new/whats_new_1.0.html">New in matplotlib 1.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="prev_whats_new/whats_new_0.99.html">New in matplotlib 0.99</a></li>
<li class="toctree-l1"><a class="reference internal" href="prev_whats_new/whats_new_0.98.4.html">New in matplotlib 0.98.4</a></li>
<li class="toctree-l1"><a class="reference internal" href="prev_whats_new/changelog.html">List of changes to Matplotlib prior to 2015</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
© Copyright 2002 - 2012 John Hunter, Darren Dale, Eric Firing, Michael Droettboom and the Matplotlib development team; 2012 - 2017 The Matplotlib development team.
Last updated on Mar 06, 2018.
Created using <a
href="http://sphinx-doc.org/">Sphinx</a> 1.7.1.
</div>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-55954603-1', 'auto');
ga('send', 'pageview');
</script>
</body>
<footer>
</footer>
</html>