From 7b3f8f40f04127602d0a9fad4285d985a202bda6 Mon Sep 17 00:00:00 2001 From: "Adam J. Jackson" Date: Tue, 5 Oct 2021 11:41:30 +0100 Subject: [PATCH] Styling: add --style and --no-base-style to CLI plotters (#188) * Styling: add --style and --no-base-style to CLI plotters Matplotlib allows several stylesheets to be overlaid. To get the best use of this, we should remove any explicit styling from plot functions and replace them with style contexts. Then our settings can take a higher priority than MPL defaults, but a lower priority than any user style preferences. Styles can be selected by inbuilt names and from user files. This allows the size and formatting of plots to be customised in a precise and consistent way for publication. It also simplifies plotting functions by removing options that can be set by the context. * Address the more reasonable Codacy failures Are we really going to use CAPS for all module-level "constants"? * Add style files to MANIFEST * Add --fontsize, --linewidth options; tweak default font sizes Have tweaked suptitle and tick labels to be bigger and smaller than fontsize, respectively. I don't have a strong opinion on that, but Duc asked for it indirectly! * Add --font option * Add styles directory to setup.py packages Jenkins test runs are failing to import from euphonic.styles, maybe it's not being included in the package correctly? * Implement --figsize, --figsize-unit options I never liked that Matplotlib uses inches as its natural length unit. As we have access to an absurdly powerful unit conversion engine, it would be rude not to use it. Yes, this means you can specify your figure size in Bohr radii! * Temporarily restore tight_layout() to check CI results This tight_layout() seems to be responsible for setting the xticklabels of an invisible axis (used for label location) from empty strings to numbers ranging 0 to 1. Those numbers are already in the reference data so this was causing test failures. We should consider removing it anyway, but it would be nice to get a clean CI result first to isolate this from other changes. * Remove (invisible) x tick values from intensity map script test * Revert "Remove (invisible) x tick values from intensity map script test" This reverts commit 19586ec8223e8d121afb69d4d772a56018c829da. * Apply tight_layout() before comparing to script test data A side-effect of tight_layout() is that it forces "unset" xticklabels to take their values. (Presumably so that the sizes can be inspected for collisions.) Now that this has been removed from plot_2d and delegated to styling, the tick labels are not set at the point the script test checks them. (Explicit labels such as high-symmetry points have been, but not numbers, including the 0-1 range of the invisible axis used to control the x-axis label position.) The resulting test failures can be addressed by updating the reference data to have these unset values; but perhaps it is more robust to check the result of tight_layout(). The test does not see the final rendered version of the plot, which would have similar labels. * New docs page: plot customisation * Customisation docs tweaks * Customisation docs correction. The background colour hasn't changed, it's an illusion from the missing axis outline! I checked the pixels with a colour picker. * Styling: Tweaks in response to reviewer comments Thanks @rebeccafair * Spectrum docs: tweak subsection formatting Sphinx is having trouble interpreting the cross-references to styling file. Maybe the ---- for sections is incorrect and throwing it off? * More RST wrangling Looks like the highlight command was preventing the heading from being identified. Fixed in all the script docs for consistency. (Somehow the index was working anyway, but maybe cross-refs wouldn't?) * Correct colour in styling docs alt-text Good spot @mducle * Add test for style arguments dispatch (internal function) This ensures good coverage of the input space. We can check that the appropriate results turn up in plotting outputs with a small integration test. * Simple integration test for styling - Check that some CL options make it to the plot * Test styling: fontsize from style sheet This uses the "small" font scaling for xticklabels with a specified base font size. This integration test should give a bit more confidence that the styling system is capable of modifying text without raising an error. The font names are going to be a bit more fragile (depending on system fonts) so for now they are not tested. * Flake8 cleanup * Plot styling: changelog, plot_1d docs - Changelog update. (Maybe a bit too verbose?) - Illustrate use of matplotlib.style.context in user docs for plot_1d * Styling docs: tweak for more consistency with matplotlib docs * Move plot styling notes to higher heading level. --- CHANGELOG.rst | 13 +++ MANIFEST.in | 1 + doc/source/cl-tools.rst | 1 + doc/source/dipole-parameter-script.rst | 3 +- doc/source/disp-script.rst | 6 +- doc/source/dos-script.rst | 6 +- doc/source/figures/plot-styling-custom-1.png | Bin 0 -> 73354 bytes doc/source/figures/plot-styling-custom-2.png | Bin 0 -> 70359 bytes doc/source/figures/plot-styling-seaborn.png | Bin 0 -> 65425 bytes doc/source/intensity-map-script.rst | 6 +- doc/source/plotting.rst | 27 +++++ doc/source/powder-map-script.rst | 4 +- doc/source/sampling-script.rst | 3 +- doc/source/styling.rst | 108 ++++++++++++++++++ euphonic/cli/dispersion.py | 21 ++-- euphonic/cli/dos.py | 16 ++- euphonic/cli/intensity_map.py | 19 +-- euphonic/cli/powder_map.py | 95 ++++++++------- euphonic/cli/utils.py | 75 +++++++++++- euphonic/plot.py | 15 ++- euphonic/styles/__init__.py | 6 + euphonic/styles/base.mplstyle | 11 ++ euphonic/styles/intensity_widget.mplstyle | 2 + setup.py | 3 +- .../test/script_tests/test_intensity_map.py | 1 + .../test/script_tests/test_powder_map.py | 1 + .../test/script_tests/test_styling.py | 80 +++++++++++++ 27 files changed, 442 insertions(+), 81 deletions(-) create mode 100644 doc/source/figures/plot-styling-custom-1.png create mode 100644 doc/source/figures/plot-styling-custom-2.png create mode 100644 doc/source/figures/plot-styling-seaborn.png create mode 100644 doc/source/styling.rst create mode 100644 euphonic/styles/__init__.py create mode 100644 euphonic/styles/base.mplstyle create mode 100644 euphonic/styles/intensity_widget.mplstyle create mode 100644 tests_and_analysis/test/script_tests/test_styling.py diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 15b0f90e2..fa9b7b567 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -6,6 +6,19 @@ - New ``Spectrum1D.to_text_file`` and ``Spectrum1DCollection.to_text_file`` methods to write to column text files + - An expanded and consistent set of styling options is made + available for command-line tools that produce plots. + + - Consistent styling and advanced changes can be made using + Matplotlib stylesheet files, either as a CLI argument or + using ``matplotlib.style.context()`` in a Python script. + +- Improvements: + + - Internally, plot theming has been adjusted to rely on Matplotlib + style contexts. This means user changes and style context are more + likely to be respected. + `v0.6.2 `_ ------ diff --git a/MANIFEST.in b/MANIFEST.in index b28b802bd..9e70f95e2 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -2,6 +2,7 @@ include euphonic/LICENSE include euphonic/CITATION.cff include euphonic/data/* include euphonic/_version.py +include euphonic/styles/*.mplstyle include versioneer.py include c/*.h include c/*.c diff --git a/doc/source/cl-tools.rst b/doc/source/cl-tools.rst index 75207c7f8..e742643d9 100644 --- a/doc/source/cl-tools.rst +++ b/doc/source/cl-tools.rst @@ -12,3 +12,4 @@ Command-line Tools euphonic-powder-map euphonic-optimise-dipole-parameter euphonic-show-sampling + Customising plots diff --git a/doc/source/dipole-parameter-script.rst b/doc/source/dipole-parameter-script.rst index a14f7063c..48ef750de 100644 --- a/doc/source/dipole-parameter-script.rst +++ b/doc/source/dipole-parameter-script.rst @@ -1,10 +1,11 @@ .. _dipole-parameter-script: -.. highlight:: bash ================================== euphonic-optimise-dipole-parameter ================================== +.. highlight:: bash + This program is useful for users wanting to efficiently calculate phonon frequencies on many q-points for polar materials. diff --git a/doc/source/disp-script.rst b/doc/source/disp-script.rst index 33bffa070..164fb9467 100644 --- a/doc/source/disp-script.rst +++ b/doc/source/disp-script.rst @@ -1,10 +1,11 @@ .. _disp-script: -.. highlight:: bash =================== euphonic-dispersion =================== +.. highlight:: bash + The ``euphonic-dispersion`` program can be used to plot dispersion either along a specific trajectory from precalculated phonon frequencies, or along a recommended reciprocal space path from force constants. For @@ -23,7 +24,8 @@ To see all the command line options, run:: euphonic-dispersion -h -You can also see the available command line options below +You can also see the available command line options below. +For information on advanced plot styling, see :ref:`styling`. Command Line Options -------------------- diff --git a/doc/source/dos-script.rst b/doc/source/dos-script.rst index 94537e2b1..a5b6a966c 100644 --- a/doc/source/dos-script.rst +++ b/doc/source/dos-script.rst @@ -1,10 +1,11 @@ .. _dos-script: -.. highlight:: bash ============ euphonic-dos ============ +.. highlight:: bash + The ``euphonic-dos`` program can be used to plot density of states, partial density of states, and/or neutron-weighted density of states. It can use pre-calculated frequencies, or use force constants to @@ -22,7 +23,8 @@ To see all the command line options, run:: euphonic-dos -h -You can also see the available command line options below +You can also see the available command line options below. +For information on advanced plot styling, see :ref:`styling`. Command Line Options -------------------- diff --git a/doc/source/figures/plot-styling-custom-1.png b/doc/source/figures/plot-styling-custom-1.png new file mode 100644 index 0000000000000000000000000000000000000000..ba7470e23e02f9c155680e98f0f25e8b71ab53eb GIT binary patch literal 73354 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�>xw5Y*WaYC$YSUku^65wz;#D*>W+Vw@UfkV`hB3 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�Ud&9Zv%|y0ZbrN<;zqy~R&HHqh*-RgmZ>M#< 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 literal 0 HcmV?d00001 diff --git a/doc/source/figures/plot-styling-custom-2.png b/doc/source/figures/plot-styling-custom-2.png new file mode 100644 index 0000000000000000000000000000000000000000..c4fb665f748b50b41e11860745c9860f9a367cf5 GIT binary patch literal 70359 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

3f+*AFhP4FChL3Ydl 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 literal 0 HcmV?d00001 diff --git a/doc/source/intensity-map-script.rst b/doc/source/intensity-map-script.rst index 7ddda6a9f..d5bc96fb0 100644 --- a/doc/source/intensity-map-script.rst +++ b/doc/source/intensity-map-script.rst @@ -1,10 +1,11 @@ .. _intensity-map-script: -.. highlight:: bash ====================== euphonic-intensity-map ====================== +.. highlight:: bash + The ``euphonic-intensity-map`` program can be used to plot a 2D intensity map either along a specific trajectory from precalculated phonon frequencies and eigenvectors, or along a recommended reciprocal space path from force @@ -23,7 +24,8 @@ To see all the command line options, run:: euphonic-intensity-map -h -You can also see the available command line options below +You can also see the available command line options below. +For information on advanced plot styling, see :ref:`styling`. Command Line Options -------------------- diff --git a/doc/source/plotting.rst b/doc/source/plotting.rst index a4f6d757a..2e29f8904 100644 --- a/doc/source/plotting.rst +++ b/doc/source/plotting.rst @@ -166,3 +166,30 @@ Docstrings .. autofunction:: euphonic.plot.plot_2d .. autofunction:: euphonic.plot.plot_2d_to_axis + +Styling +======= + +To produce consistent and beautiful plots, it is recommended to use +`Matplotlib style sheets `_. +The cleanest way to apply this is using a context manager. +Within the indented block, a user-provided combination of style sheets +is applied to any new plots. +These can be built-in themes, file paths or parameter dictionaries, +e.g.: + +.. code-block:: py + + import matplotlib.pyplot as plt + from euphonic import Spectrum1D + from euphonic.plot import plot_1d, plot_1d_to_axis + + dos = Spectrum1D.from_json_file('dos.json') + + with plt.style.context(['dark_background', {'lines.linewidth': 2.0}]): + fig = plot_1d(dos) + fig.show() + +This approach is used in the Euphonic command-line tools; for more +information see :ref:`styling`. The CLI defaults can be imitated by +using the same style sheet ``euphonic.style.base_style``. diff --git a/doc/source/powder-map-script.rst b/doc/source/powder-map-script.rst index 6568318a1..481ea1b2a 100644 --- a/doc/source/powder-map-script.rst +++ b/doc/source/powder-map-script.rst @@ -1,10 +1,11 @@ .. _powder-map-script: -.. highlight:: bash ====================== euphonic-powder-map ====================== +.. highlight:: bash + The ``euphonic-powder-map`` program can be used to sample spherically-averaged properties from force constants data over a range of :math:`|q|`. The results are plotted as a 2-dimensional map in :math:`(|q|, \omega)`. @@ -23,6 +24,7 @@ To see all the command line options, run:: euphonic-powder-map -h You can also see the available command line options at the bottom of this page. +For information on advanced plot styling, see :ref:`styling`. Spherical averaging options --------------------------- diff --git a/doc/source/sampling-script.rst b/doc/source/sampling-script.rst index cae5590ff..7fd773149 100644 --- a/doc/source/sampling-script.rst +++ b/doc/source/sampling-script.rst @@ -1,10 +1,11 @@ .. _sampling-script: -.. highlight:: bash ====================== euphonic-show-sampling ====================== +.. highlight:: bash + ``euphonic-show-sampling`` can be used to visualise the spherical sampling schemes implemented in :mod:`euphonic.sampling`. For example, to see how the 'golden' sphere sampling approach works for diff --git a/doc/source/styling.rst b/doc/source/styling.rst new file mode 100644 index 000000000..ca329ea51 --- /dev/null +++ b/doc/source/styling.rst @@ -0,0 +1,108 @@ +.. _styling: + +================= +Customising plots +================= + +.. highlight:: bash + +Command-line options +==================== + +Several of Euphonic's :ref:`cl-tools` produce 2D plots. A few command-line +arguments are provided to tweak the plot size, font settings and colour maps, e.g.:: + + euphonic-dos --font Monaco --fontsize 18 --figsize 10 10 --figsize-unit cm quartz.castep_bin + +will produce a plot with larger (hopefully monospace) text on a small +square canvas. This may be especially useful with the ``--save-to`` +option to create consistent plots for presentation slides and academic +papers. + +The ``--font`` option will be passed to the Matplotlib library as the +preferred "sans-serif" option, and the font family will be set to +sans-serif. Unfortunately it can be tricky to identify exactly which +font names are accepted by Matplotlib. We cannot advise on this for +all platforms, so if you have a preferred font it may be worth +searching for help on using this font with Matplotlib. + +Using Matplotlib styles +======================= + +These and other appearance customisations can be defined as a +Matplotlib style sheet. +`A number of popular styles are predefined in Matplotlib `_ +and may be accessed by name, e.g.:: + + euphonic-dos --style seaborn quartz.castep_bin + +will yield a plot on a grey background with white gridlines. + +.. image:: figures/plot-styling-seaborn.png + :width: 400 + :alt: PDOS plot with thin dark blue, red and green lines against a + pale grey background divided by white gridlines. There are no + outlines around the legend (top-right) or the axes; number + values are in a black sans-serif and float near the plot. + +``--style=dark_background`` might be preferred for some slide +presentations. + +Using custom stylesheets +======================== + +For a custom scheme, you can `develop your own style file `_. +For example, with the following file saved as "custom.mplstyle" + +.. code-block:: ini + + axes.facecolor: floralwhite + font.family: monospace + text.color: grey + lines.linewidth : 3 + xtick.labelsize : smaller + legend.fancybox: True + legend.shadow: True + figure.figsize : 3, 3 + figure.facecolor : palegoldenrod + +then the command:: + + euphonic-dos quartz.castep_bin --pdos --style custom.mplstyle + +generates a small figure with some "opinionated" styling. + +.. image:: figures/plot-styling-custom-1.png + :width: 400 + :alt: A square PDOS plot with very thick blue, orange and green data + lines, a pale yellow background and pinkish off-white canvas. + The canvas is surrounded by black lines with numbered ticks. + On the canvas are vertical grey gridlines and a legend with drop + shadow, round corners and grey text. The label text is in a + monospace font. + +It is possible to "compose" multiple styles in ascending priority +order, e.g.:: + + euphonic-dos quartz.castep_bin --pdos --style seaborn custom.mplstyle + +In the resulting figure, the customised text and canvas options have +taken priority, but we still get the Seaborn colour sequence for plot +lines. The plot outline, ticks and legend box were removed. (And with +them, the legend customisation!) + +.. image:: figures/plot-styling-custom-2.png + :width: 400 + :alt: A very similar plot to the above, except that the legend box + is gone (along with its shadow), and the line colours are now + a tasteful blue, green and (desaturated) red combination. The + grid lines are white against a pale orange background. + +For a large project, this can be very useful to establish a general +"house style" with variations for certain plot types. However, as seen +above, combining styles can sometimes have unexpected consequences. In +order to prevent conflict between Euphonic's own stylesheet and other +style options, the ``--no-base-style`` argument can be used to remove +the Euphonic defaults. For example, with the ``seaborn`` style this +will restore the horizontal grid lines that are expected to replace +the missing black ticks. diff --git a/euphonic/cli/dispersion.py b/euphonic/cli/dispersion.py index 21406da47..d8bf68a67 100644 --- a/euphonic/cli/dispersion.py +++ b/euphonic/cli/dispersion.py @@ -1,10 +1,14 @@ from argparse import ArgumentParser from typing import List, Optional +import matplotlib.style + import euphonic from euphonic.plot import plot_1d +from euphonic.styles import base_style from euphonic import Spectrum1D from .utils import (load_data_from_file, get_args, _bands_from_force_constants, + _compose_style, _get_q_distance, matplotlib_save_or_show, _get_cli_parser, _calc_modes_kwargs) @@ -50,13 +54,16 @@ def main(params: Optional[List[str]] = None) -> None: spectra = spectrum.split(**split_args) # type: List[Spectrum1D] - _ = plot_1d(spectra, - title=args.title, - x_label=x_label, - y_label=y_label, - y_min=args.e_min, y_max=args.e_max, - lw=1.0) - matplotlib_save_or_show(save_filename=args.save_to) + style = _compose_style(user_args=args, + base=[base_style]) + + with matplotlib.style.context(style): + _ = plot_1d(spectra, + title=args.title, + x_label=x_label, + y_label=y_label, + y_min=args.e_min, y_max=args.e_max) + matplotlib_save_or_show(save_filename=args.save_to) def get_parser() -> ArgumentParser: diff --git a/euphonic/cli/dos.py b/euphonic/cli/dos.py index 266b12a42..4e83d3a86 100644 --- a/euphonic/cli/dos.py +++ b/euphonic/cli/dos.py @@ -1,12 +1,14 @@ from argparse import ArgumentParser from typing import List, Optional -from euphonic import (ureg, ForceConstants, QpointPhononModes, - Spectrum1DCollection) +import matplotlib.style + +from euphonic import ureg, ForceConstants, QpointPhononModes from euphonic.util import mp_grid, mode_gradients_to_widths from euphonic.plot import plot_1d +from euphonic.styles import base_style from .utils import (load_data_from_file, get_args, matplotlib_save_or_show, - _calc_modes_kwargs, + _calc_modes_kwargs, _compose_style, _get_cli_parser, _get_energy_bins, _grid_spec_from_args, _get_pdos_weighting, _arrange_pdos_groups) @@ -74,9 +76,11 @@ def main(params: Optional[List[str]] = None) -> None: else: y_label = args.y_label - fig = plot_1d(dos, title=args.title, x_label=x_label, y_label=y_label, - y_min=0, lw=1.0) - matplotlib_save_or_show(save_filename=args.save_to) + style = _compose_style(user_args=args, base=[base_style]) + with matplotlib.style.context(style): + _ = plot_1d(dos, title=args.title, x_label=x_label, y_label=y_label, + y_min=0) + matplotlib_save_or_show(save_filename=args.save_to) def get_parser() -> ArgumentParser: diff --git a/euphonic/cli/intensity_map.py b/euphonic/cli/intensity_map.py index d8b1e9123..070a0b052 100755 --- a/euphonic/cli/intensity_map.py +++ b/euphonic/cli/intensity_map.py @@ -1,13 +1,16 @@ from argparse import ArgumentParser from typing import List, Optional +import matplotlib.style import numpy as np import euphonic from euphonic import ureg, Spectrum2D import euphonic.plot from euphonic.util import get_qpoint_labels +from euphonic.styles import base_style from .utils import (_bands_from_force_constants, _calc_modes_kwargs, + _compose_style, get_args, _get_debye_waller, _get_energy_bins, _get_q_distance, _get_cli_parser, load_data_from_file, @@ -91,13 +94,15 @@ def main(params: Optional[List[str]] = None) -> None: if len(spectra) > 1: print(f"Found {len(spectra)} regions in q-point path") - euphonic.plot.plot_2d(spectra, - cmap=args.cmap, - vmin=args.v_min, vmax=args.v_max, - x_label=x_label, - y_label=y_label, - title=args.title) - matplotlib_save_or_show(save_filename=args.save_to) + style = _compose_style(user_args=args, base=[base_style]) + with matplotlib.style.context(style): + + euphonic.plot.plot_2d(spectra, + vmin=args.v_min, vmax=args.v_max, + x_label=x_label, + y_label=y_label, + title=args.title) + matplotlib_save_or_show(save_filename=args.save_to) def get_parser() -> ArgumentParser: diff --git a/euphonic/cli/powder_map.py b/euphonic/cli/powder_map.py index 33f78d59c..8f425c950 100755 --- a/euphonic/cli/powder_map.py +++ b/euphonic/cli/powder_map.py @@ -2,10 +2,12 @@ from math import ceil from typing import List, Optional +import matplotlib.style import numpy as np from euphonic import ureg -from euphonic.cli.utils import (_calc_modes_kwargs, _get_cli_parser, +from euphonic.cli.utils import (_calc_modes_kwargs, _compose_style, + _get_cli_parser, _get_debye_waller, _get_energy_bins, _get_q_distance, _get_pdos_weighting, _arrange_pdos_groups) @@ -14,6 +16,7 @@ import euphonic.plot from euphonic.powder import (sample_sphere_dos, sample_sphere_pdos, sample_sphere_structure_factor) +from euphonic.styles import base_style, intensity_widget_style import euphonic.util # Dummy tqdm function if tqdm progress bars unavailable @@ -161,46 +164,50 @@ def main(params: Optional[List[str]] = None) -> None: else: x_label = args.x_label - fig = euphonic.plot.plot_2d(spectrum, - cmap=args.cmap, - vmin=args.v_min, vmax=args.v_max, - x_label=x_label, - y_label=y_label, - title=args.title) - - if args.disable_widgets is False: - # TextBox only available from mpl 2.1.0 - try: - from matplotlib.widgets import TextBox - except ImportError: - args.disable_widgets = True - - if args.disable_widgets is False: - min_label = f'Min Intensity ({spectrum.z_data.units:~P})' - max_label = f'Max Intensity ({spectrum.z_data.units:~P})' - boxw = 0.15 - boxh = 0.05 - x0 = 0.1 + len(min_label)*0.01 - y0 = 0.025 - fig.subplots_adjust(bottom=0.25) - axmin = fig.add_axes([x0, y0, boxw, boxh]) - axmax = fig.add_axes([x0, y0 + 0.075, boxw, boxh]) - image = fig.get_axes()[0].images[0] - cmin, cmax = image.get_clim() - pad = 0.05 - fmt_str = '.2e' if cmax < 0.1 else '.2f' - minbox = TextBox(axmin, min_label, - initial=f'{cmin:{fmt_str}}', label_pad=pad) - maxbox = TextBox(axmax, max_label, - initial=f'{cmax:{fmt_str}}', label_pad=pad) - def update_min(min_val): - image.set_clim(vmin=float(min_val)) - fig.canvas.draw() - - def update_max(max_val): - image.set_clim(vmax=float(max_val)) - fig.canvas.draw() - minbox.on_submit(update_min) - maxbox.on_submit(update_max) - - matplotlib_save_or_show(save_filename=args.save_to) + if args.disable_widgets: + base = [base_style] + else: + base = [base_style, intensity_widget_style] + style = _compose_style(user_args=args, base=base) + with matplotlib.style.context(style): + fig = euphonic.plot.plot_2d(spectrum, + vmin=args.v_min, vmax=args.v_max, + x_label=x_label, + y_label=y_label, + title=args.title) + + if args.disable_widgets is False: + # TextBox only available from mpl 2.1.0 + try: + from matplotlib.widgets import TextBox + except ImportError: + args.disable_widgets = True + + if args.disable_widgets is False: + min_label = f'Min Intensity ({spectrum.z_data.units:~P})' + max_label = f'Max Intensity ({spectrum.z_data.units:~P})' + boxw = 0.15 + boxh = 0.05 + x0 = 0.1 + len(min_label)*0.01 + y0 = 0.025 + axmin = fig.add_axes([x0, y0, boxw, boxh]) + axmax = fig.add_axes([x0, y0 + 0.075, boxw, boxh]) + image = fig.get_axes()[0].images[0] + cmin, cmax = image.get_clim() + pad = 0.05 + fmt_str = '.2e' if cmax < 0.1 else '.2f' + minbox = TextBox(axmin, min_label, + initial=f'{cmin:{fmt_str}}', label_pad=pad) + maxbox = TextBox(axmax, max_label, + initial=f'{cmax:{fmt_str}}', label_pad=pad) + def update_min(min_val): + image.set_clim(vmin=float(min_val)) + fig.canvas.draw() + + def update_max(max_val): + image.set_clim(vmax=float(max_val)) + fig.canvas.draw() + minbox.on_submit(update_min) + maxbox.on_submit(update_max) + + matplotlib_save_or_show(save_filename=args.save_to) diff --git a/euphonic/cli/utils.py b/euphonic/cli/utils.py index 4dc1eeadc..6c4d47534 100644 --- a/euphonic/cli/utils.py +++ b/euphonic/cli/utils.py @@ -640,6 +640,29 @@ def __call__(self, parser, args, values, option_string=None): dest='x_label', help='Plot x-axis label') section.add_argument('--y-label', type=str, default=None, dest='y_label', help='Plot y-axis label') + section.add_argument('--style', type=str, nargs='+', + help='Matplotlib styles (name or file)') + section.add_argument('--no-base-style', action='store_true', + dest='no_base_style', + help=('Remove all default formatting before ' + 'applying other style options.')) + section.add_argument('--font', type=str, default=None, + help=('Select text font. (This has to be a name ' + 'known to Matplotlib. font-family will be ' + 'set to sans-serif; it doesn\'t matter if)' + 'the font is actually sans-serif.')) + section.add_argument('--fontsize', type=float, default=None, + help='Set base font size in pt.') + section.add_argument('--figsize', type=float, nargs=2, default=None, + help='Figure canvas size in FIGSIZE-UNITS') + section.add_argument('--figsize-unit', type=str, default='cm', + dest='figsize_unit', + help='Unit of length for --figsize') + + if ('plotting' in features) and not ('map' in features): + section = sections['plotting'] + section.add_argument('--linewidth', type=float, default=None, + help='Set line width in pt.') if {'ebins', 'q-e'}.intersection(features): section = sections['energy'] @@ -709,7 +732,7 @@ def __call__(self, parser, args, values, option_string=None): '--v-max', type=float, default=None, dest='v_max', help='Maximum of data range for colormap.') sections['plotting'].add_argument( - '--cmap', type=str, default='viridis', help='Matplotlib colormap') + '--cmap', type=str, default=None, help='Matplotlib colormap') if 'btol' in features: sections['q'].add_argument( @@ -748,3 +771,53 @@ def __call__(self, parser, args, values, option_string=None): ) return parser, sections + + +MplStyle = Union[str, Dict[str, str]] + + +def _compose_style( + *, user_args: Namespace, base: Optional[List[MplStyle]] + ) -> List[MplStyle]: + """Combine user-specified style options with default stylesheets + + Args: + user_args: from _get_cli_parser().parse_args() + base: Euphonic default styles for this plot + + N.B. matplotlib applies styles from left to right, so the right-most + elements of the list take the highest priority. This function builds a + list in the order: + + [base style(s), user style(s), CLI arguments] + """ + + if user_args.no_base_style or base is None: + style = [] + else: + style = base + + if user_args.style: + style += user_args.style + + # Explicit args take priority over any other + explicit_args = {} + for user_arg, mpl_property in {'cmap': 'image.cmap', + 'fontsize': 'font.size', + 'font': 'font.sans-serif', + 'linewidth': 'lines.linewidth', + 'figsize': 'figure.figsize'}.items(): + if getattr(user_args, user_arg, None): + explicit_args.update({mpl_property: getattr(user_args, user_arg)}) + + if 'font.sans-serif' in explicit_args: + explicit_args.update({'font.family': 'sans-serif'}) + + if 'figure.figsize' in explicit_args: + dimensioned_figsize = [dim * ureg(user_args.figsize_unit) + for dim in explicit_args['figure.figsize']] + explicit_args['figure.figsize'] = [dim.to('inches').magnitude + for dim in dimensioned_figsize] + + style.append(explicit_args) + return style diff --git a/euphonic/plot.py b/euphonic/plot.py index dc82320d0..0f17a24e5 100644 --- a/euphonic/plot.py +++ b/euphonic/plot.py @@ -1,4 +1,4 @@ -from typing import List, Optional, Sequence, Tuple, Union +from typing import Optional, Sequence, Tuple, Union try: import matplotlib.pyplot as plt @@ -54,7 +54,8 @@ def plot_1d_to_axis(spectra: Union[Spectrum1D, Spectrum1DCollection], raise TypeError("spectra should be a Spectrum1D or " "Spectrum1DCollection") - if isinstance(labels, str): labels = [labels] + if isinstance(labels, str): + labels = [labels] if labels is not None and len(labels) != len(spectra): raise ValueError( f"The length of labels (got {len(labels)}) should be the " @@ -186,6 +187,7 @@ def plot_1d(spectra: Union[Spectrum1D, # Add an invisible large axis for common labels ax = fig.add_subplot(111, frameon=False) + ax.grid(False) ax.tick_params(labelcolor="none", bottom=False, left=False) ax.set_xlabel(x_label) ax.set_ylabel(y_label) @@ -195,7 +197,7 @@ def plot_1d(spectra: Union[Spectrum1D, def plot_2d_to_axis(spectrum: Spectrum2D, ax: Axes, - cmap: Union[str, Colormap] = 'viridis', + cmap: Union[str, Colormap] = None, interpolation: str = 'nearest', norm: Optional[Normalize] = None, ) -> NonUniformImage: @@ -247,7 +249,7 @@ def plot_2d_to_axis(spectrum: Spectrum2D, ax: Axes, def plot_2d(spectra: Union[Spectrum2D, Sequence[Spectrum2D]], vmin: Optional[float] = None, vmax: Optional[float] = None, - cmap: Union[str, Colormap] = 'viridis', + cmap: Optional[Union[str, Colormap]] = None, title: str = '', x_label: str = '', y_label: str = '') -> Figure: """ Creates a Matplotlib figure for a Spectrum2D object @@ -312,15 +314,16 @@ def _get_minmax_intensity(spectrum: Spectrum2D) -> Tuple[float, float]: # Add an invisible large axis for common labels ax = fig.add_subplot(111, frameon=False) + ax.grid(False) ax.tick_params(labelcolor="none", bottom=False, left=False) ax.set_xlabel(x_label) ax.set_ylabel(y_label) fig.suptitle(title) - fig.tight_layout() return fig + def _set_x_tick_labels(ax: Axes, x_tick_labels: Optional[Sequence[Tuple[int, str]]], x_data: Quantity) -> None: @@ -328,7 +331,7 @@ def _set_x_tick_labels(ax: Axes, locs, labels = [list(x) for x in zip(*x_tick_labels)] x_values = x_data.magnitude # type: np.ndarray ax.set_xticks(x_values[locs]) - ax.xaxis.grid(True, which='major') + # Rotate long tick labels if len(max(labels, key=len)) >= 11: ax.set_xticklabels(labels, rotation=90) diff --git a/euphonic/styles/__init__.py b/euphonic/styles/__init__.py new file mode 100644 index 000000000..94885cb72 --- /dev/null +++ b/euphonic/styles/__init__.py @@ -0,0 +1,6 @@ +"""Matplotlib stylesheets for plot styling""" +from pkg_resources import resource_filename + +base_style = resource_filename("euphonic.styles", "base.mplstyle") +intensity_widget_style = resource_filename("euphonic.styles", + "intensity_widget.mplstyle") diff --git a/euphonic/styles/base.mplstyle b/euphonic/styles/base.mplstyle new file mode 100644 index 000000000..36d4d847e --- /dev/null +++ b/euphonic/styles/base.mplstyle @@ -0,0 +1,11 @@ +axes.grid : True +axes.grid.axis : x +axes.grid.which : major +axes.labelsize: medium +figure.titlesize : large +xtick.labelsize : small +ytick.labelsize : small +lines.linewidth : 1.0 +image.cmap : viridis +figure.autolayout : True # Equivalent to calling tight_layout(); + # consider setting to false if making adjustments \ No newline at end of file diff --git a/euphonic/styles/intensity_widget.mplstyle b/euphonic/styles/intensity_widget.mplstyle new file mode 100644 index 000000000..2025571e8 --- /dev/null +++ b/euphonic/styles/intensity_widget.mplstyle @@ -0,0 +1,2 @@ +figure.autolayout : False +figure.subplot.bottom: 0.25 \ No newline at end of file diff --git a/setup.py b/setup.py index a908f12a2..8867be4f9 100644 --- a/setup.py +++ b/setup.py @@ -102,7 +102,8 @@ def run_setup(): packages = ['euphonic', 'euphonic.cli', 'euphonic.readers', - 'euphonic.data'] + 'euphonic.data', + 'euphonic.styles'] with open('README.rst', 'r') as f: long_description = f.read() diff --git a/tests_and_analysis/test/script_tests/test_intensity_map.py b/tests_and_analysis/test/script_tests/test_intensity_map.py index e0781a394..e4a3f39f6 100644 --- a/tests_and_analysis/test/script_tests/test_intensity_map.py +++ b/tests_and_analysis/test/script_tests/test_intensity_map.py @@ -64,6 +64,7 @@ def run_intensity_map_and_test_result( self, intensity_map_args): euphonic.cli.intensity_map.main(intensity_map_args) + matplotlib.pyplot.gcf().tight_layout() # Force tick labels to be set image_data = get_current_plot_image_data() with open(intensity_map_output_file, 'r') as expected_data_file: diff --git a/tests_and_analysis/test/script_tests/test_powder_map.py b/tests_and_analysis/test/script_tests/test_powder_map.py index 404ca5ab4..00de6a7f7 100644 --- a/tests_and_analysis/test/script_tests/test_powder_map.py +++ b/tests_and_analysis/test/script_tests/test_powder_map.py @@ -71,6 +71,7 @@ def teardown_method(self): def run_powder_map_and_test_result(self, powder_map_args): euphonic.cli.powder_map.main(powder_map_args) + matplotlib.pyplot.gcf().tight_layout() # Force tick labels to be set image_data = get_current_plot_image_data() with open(powder_map_output_file, 'r') as expected_data_file: diff --git a/tests_and_analysis/test/script_tests/test_styling.py b/tests_and_analysis/test/script_tests/test_styling.py new file mode 100644 index 000000000..096574263 --- /dev/null +++ b/tests_and_analysis/test/script_tests/test_styling.py @@ -0,0 +1,80 @@ +from argparse import Namespace + +import pytest +import matplotlib.pyplot +from numpy.testing import assert_allclose + +import euphonic.cli.dos +from euphonic.cli.utils import _compose_style + +from tests_and_analysis.test.utils import get_castep_path + +compose_style_cases = [ + ({'user_args': Namespace(unused=1, no_base_style=False, style=None), + 'base': None}, [{}]), + ({'user_args': Namespace(unused=1, no_base_style=False, style=None), + 'base': ['dark_background']}, ['dark_background', {}]), + ({'user_args': Namespace(unused=1, no_base_style=True, style=None), + 'base': ['dark_background']}, [{}]), + ({'user_args': Namespace(no_base_style=False, style=None), + 'base': ['my/imaginary/file', 'dark_background']}, + ['my/imaginary/file', 'dark_background', {}]), + ({'user_args': Namespace(no_base_style=False, style=['ggplot', 'seaborn']), + 'base': ['my/imaginary/file', 'dark_background']}, + ['my/imaginary/file', 'dark_background', 'ggplot', 'seaborn', {}]), + ({'user_args': Namespace(unused=1, no_base_style=False, style=['ggplot'], + cmap='bone', fontsize=12, font='Comic Sans', + linewidth=4, figsize=[1, 2], figsize_unit='inch'), + 'base': None}, ['ggplot', {'image.cmap': 'bone', + 'font.size': 12, + 'font.family': 'sans-serif', + 'font.sans-serif': 'Comic Sans', + 'lines.linewidth': 4, + 'figure.figsize': [1, 2]}]), + ({'user_args': Namespace(unused=1, no_base_style=False, style=['ggplot'], + figsize=[2.54, 2.54], figsize_unit='cm'), + 'base': None}, ['ggplot', {'figure.figsize': [1., 1.]}]), + ] + + +@pytest.mark.unit +@pytest.mark.parametrize('kwargs,expected_style', compose_style_cases) +def test_compose_style(kwargs, expected_style): + """Internal function which interprets matplotlib style options""" + assert _compose_style(**kwargs) == expected_style + + +@pytest.mark.integration +class TestDOSStyling: + + @pytest.fixture + def inject_mocks(self, mocker): + # Prevent calls to show so we can get the current figure using + # gcf() + mocker.patch('matplotlib.pyplot.show') + mocker.resetall() + + def teardown_method(self): + # Ensure figures are closed + matplotlib.pyplot.close('all') + + def test_dos_styling(self, inject_mocks): + nah_phonon_file = get_castep_path('NaH', 'NaH.phonon') + + params = [nah_phonon_file, + '--style=dark_background', + '--linewidth=5.', + '--fontsize=11.', + '--figsize', '4', '4', + '--figsize-unit', 'inch'] + + euphonic.cli.dos.main(params=params) + + fig = matplotlib.pyplot.gcf() + + assert_allclose([0., 0., 0., 1.], fig.get_facecolor()) + assert fig.axes[0].lines[0].get_linewidth() == pytest.approx(5.) + assert_allclose([4., 4.], fig.get_size_inches()) + # Font size: base size 11 * "small" factor 0.833 + assert (fig.axes[0].get_xticklabels()[0].get_fontsize() + == pytest.approx(0.833 * 11))