Changelog history

ProPlot v1.0.0 (2020-##-##)

This will be published when some major refactoring tasks are completed, and deprecation warnings will be removed. See GH#89, GH#109, GH#110, and GH#111.

ProPlot v0.6.0 (2020-##-##)

Deprecated

Features

  • All features are now implemented with individual setters, like in matplotlib, but we still encourage using the bulk set method through documentation examples and by populating the set docstring (so valid arguments are no longer implicit).

  • Users can now use figure with add_subplot or subplots (GH#110). This is a major improvement!

  • GridSpec now accepts physical units, rather than having subplots handle the units (GH#110).

  • Allow “hanging” twin x and y axes as members of the EdgeStack container. Arbitrarily many siblings are now permitted.

  • Use GeometrySolver for calculating various automatic layout stuff instead of having 1000 hidden Figure methods (GH#110).

  • Use EdgeStack class for handling stacks of colorbars, legends, and text (GH#110).

Internals

  • Assignments to rc_configurator are now validated, and the configurator is now a monkey patch of rcParams (GH#109).

  • Plotting wrapper features (e.g. standardize_1d) are now implemented and documented on the individual methods themselves (e.g. plot; GH#111). This is much easier for new users.

  • Handle all projection keyword arguments in add_subplot instead of subplots (GH#110).

  • Panels, colorbars, and legends are now members of EdgeStack stacks rather than getting inserted directly into the main GridSpec (GH#110).

ProPlot v0.5.0 (2020-02-10)

Deprecated

Features

Bug fixes

Internals

  • Remove various unused keyword arguments (@33654a42).

  • Major improvements to the API controlling axes titles and a-b-c labels (@1ef7e65e).

  • Always use full names left, right, top, and bottom instead of l, r, b, and t, for clarity (@1ef7e65e).

  • Improve GrayCycle colormap, is now much shorter and built from reflected Fabio GrayC colormaps (@5b2c7eb7).

ProPlot v0.4.3 (2020-01-21)

Deprecated

  • Remove ipython_autoreload, ipython_autosave, and ipython_matplotlib (GH#112, GH#113). Move inline backend configuration to a hidden method that gets called whenever the rc_configurator is initalized.

Features

Internals

ProPlot v0.4.2 (2020-01-09)

Features

  • Add family keyword arg to show_fonts (GH#106).

  • Package the TeX Gyre font series with ProPlot (GH#106). Remove a couple other fonts.

  • Put the TeX Gyre fonts at the head of the serif, sans-serif, monospace, cursive, and fantasy rcParams font family lists (GH#104, GH#106).

Bug fixes

  • Fix issues with Fira Math weights unrecognized by matplotlib (GH#106).

ProPlot v0.4.1 (2020-01-08)

Deprecation

  • Change the default .proplotrc format from YAML to the .matplotlibrc syntax (GH#101).

Features

  • Comments (lines starting with #) are now permitted in all RGB and HEX style colormap and cycle files (GH#100).

  • Break down show_cycles bars into categories, just like show_cmaps (GH#100).

Bug fixes

Internals

  • Add geogrid.color/linewidth/etc and gridminor.color/linewidth/etc props as children of grid.color/linewidth/etc (GH#101).

  • Various rc_configurator improvements, remove outdated global variables (GH#101).

  • Better error handling when loading colormap/cycle files, and calls to Colormap and Cycle now raise errors while calls to register_cmaps and register_cycles still issue warnings (GH#100).

ProPlot v0.4.0 (2020-01-07)

Deprecated

  • Rename basemap_defaults to basemap_kwargs and cartopy_projs to cartopy_names (@431a06ce).

  • Remove subplots.innerspace, subplots.titlespace, subplots.xlabspace, and subplots.ylabspace spacing arguments, automatically calculate default non-tight spacing using _get_space based on current tick lengths, label sizes, etc.

  • Remove redundant use_fonts, use rcParams['sans-serif'] precedence instead (GH#95).

  • dualx and dualy no longer accept “scale-spec” arguments. Must be a function, two functions, or an axis scale instance (GH#96).

  • Remove Axes share[x|y], span[x|y], and align[x|y] kwargs (GH#99). These settings are now always figure-wide.

  • Rename Cycle samples to N, rename show_colors nbreak to nhues (GH#98).

Features

  • Add from_file static methods (GH#98). You can now load files by passing a name to Colormap.

  • Add TeX Gyre Heros as open source Helvetica-alternative; this is the new default font. Add Fira Math as DejaVu Sans-alternative; has complete set of math characters (GH#95).

  • Add xlinewidth, ylinewidth, xgridcolor, ygridcolor keyword args to format (GH#95).

  • Add getters and setters for various Figure settings like share[x|y], span[x|y], and align[x|y] (GH#99).

  • Let twinx, twiny, altx, and alty accept format keyword args just like dualx and dualy (GH#99).

  • Add Figure fallback_to_cm kwarg. This is used by show_fonts to show dummy glyphs to clearly illustrate when fonts are missing characters, but preserve graceful fallback for end user.

  • Improve Proj constructor function. It now accepts Projection and Basemap instances, just like other constructor functions, and returns only the projection instance (GH#92).

  • rc __getitem__ always returns the setting. To get context block-restricted settings, you must explicitly pass context=True to get, fill, or category (GH#91).

Bug fixes

  • Fix context bug (GH#80 and GH#91).

  • Fix issues with dualx and dualy with non-linear parent scales (GH#96).

  • Ignore TTC fonts because they cannot be saved in EPS/PDF figures (GH#94 and GH#95).

  • Do not try to use Helvetica Neue because “thin” font style is read as regular (GH#94 and GH#95).

Documentation

  • Use the imperative mood for docstring summaries (GH#92).

  • Fix show_cycles bug (GH#90) and show cycles using colorbars rather than lines (GH#98).

Internals

  • Define rc default values with inline dictionaries rather than with a default .proplotrc file, change the auto-generated user .proplotrc (GH#91).

  • Remove useless panel_kw keyword arg from legend_wrapper and colorbar_wrapper (GH#91). Remove wflush, hflush, and flush keyword args from subplots that should have been removed long ago.

ProPlot v0.3.1 (2019-12-16)

Bug fixes

  • Fix issue where custom fonts were not synced (@a1b47b4c).

  • Fix issue with latest versions of matplotlib where %matplotlib inline fails silently so the backend is not instantiated (@cc39dc56).

ProPlot v0.3.0 (2019-12-15)

Deprecated

Features

  • Add use_font, only sync Google Fonts fonts (GH#87).

  • New 'DryWet' colormap is colorblind friendly (@0280e266).

  • Permit shifting arbitrary colormaps by 180 degrees by appending the name with '_shifted', just like '_r' (@e2e2b2c7).

Bug fixes

  • Add brute force workaround for saving colormaps with callable segmentdata (@8201a806).

  • Fix issue with latest versions of matplotlib where %matplotlib inline fails silently so the backend is not instantiated (@cc39dc56).

  • Fix shifted when shift is not 180 (@e2e2b2c7).

  • Save the cyclic and gamma attributes in JSON files too (@8201a806).

Documentation

  • Cleanup notebooks, especially the colormaps demo (e.g. @952d4cb3).

Internals

ProPlot v0.2.7 (2019-12-09)

Bug fixes

  • Fix issue where AutoFormatter logarithmic scale points are incorrect (@9b164733).

Documentation

Internals

  • Remove prefix, suffix, and negpos keyword args from SimpleFormatter, remove precision keyword arg from AutoFormatter (@8520e363).

  • Make 'deglat', 'deglon', 'lat', 'lon', and 'deg' instances of AutoFormatter instead of SimpleFormatter (@8520e363). The latter should just be used for contours.

ProPlot v0.2.6 (2019-12-08)

Bug fixes

  • Fix issue where twin axes are drawn twice (@56145122).

ProPlot v0.2.5 (2019-12-07)

Features

ProPlot v0.2.4 (2019-12-07)

Deprecated

Documentation

Internals

ProPlot v0.2.3 (2019-12-05)

Bug fixes

  • Fix issue with overlapping gridlines using monkey patches on gridliner instances (@8960ebdc).

  • Fix issue where auto colorbar labels are not applied when globe=True (@ecb3c899).

  • More sensible zorder for gridlines (@90d94e55).

  • Fix issue where customized super title settings are overridden when new axes are created (@35cb21f2).

Documentation

  • Organize ipython notebook documentation (@35cb21f2).

Internals

  • Major cleanup of the colorbar_wrapper source code, handle minor ticks using the builtin matplotlib API just like major ticks (@b9976220).

ProPlot v0.2.2 (2019-12-04)

Deprecated

Bug fixes

Documentation

  • Make notebook examples PEP8 compliant (@97f5ffd4). Much more readable now.

ProPlot v0.2.1 (2019-12-02)

Deprecated

  • Rename autoreload_setup, autosave_setup, and matplotlib_setup to ipython_autoreload, ipython_autosave, and ipython_matplotlib, respectively (@84e80c1e).

ProPlot v0.2.0 (2019-12-02)

Deprecated

  • Remove the nbsetup rc setting in favor of separate autosave, autoreload, and matplotlib settings for triggering the respective % magic commands. (@3a622887; nbsetup is still accepted but no longer documented).

  • Rename the format rc setting in favor of the inlinefmt setting (@3a622887; format is still accepted but no longer documented).

  • Rename FlexibleGridSpec and FlexibleSubplotSpec to GridSpec and SubplotSpec (@3a622887; until GH#110 is merged it is impossible to use these manually, so this won’t bother anyone).

Features

  • Support manual resizing for all backends, including osx and qt (@3a622887).

Bug fixes

  • Disable automatic resizing for the nbAgg interactive inline backend. Found no suitable workaround (@3a622887).

Internals

  • Organize the rc documentation and the default .proplotrc file (@3a622887).

  • Rename rcParamsCustom to rcParamsLong (@3a622887; this is inaccessible to the user).

  • When calling fig.canvas.print_figure() on a stale figure, call fig.canvas.draw() first. May be overkill for savefig but critical for correctly displaying already-drawn notebook figures.

ProPlot v0.1.0 (2019-12-01)

Internals

  • Include flake8 in Travis CI testing (@8743b857).

  • Enforce source code PEP8 compliance (@78da51a7).

  • Use pre-commit for all future commits (@e14f6809).

  • Implement tight layout stuff with canvas monkey patches (@67221d10). ProPlot now works for arbitrary backends, not just inline and qt.

Documentation

ProPlot v0.0.0 (2019-11-27)

The first version released on PyPi.