ultraplot 2.4.0__tar.gz → 2.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ultraplot-2.4.0 → ultraplot-2.5.0}/.github/workflows/publish-pypi.yml +5 -49
- ultraplot-2.5.0/.zenodo.json +30 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/CITATION.cff +6 -2
- {ultraplot-2.4.0/ultraplot.egg-info → ultraplot-2.5.0}/PKG-INFO +1 -1
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/api.rst +10 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/fonts.py +82 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/insets_panels.py +72 -1
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/projections.py +54 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/subplots.py +8 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/pyproject.toml +1 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/__init__.py +1 -0
- ultraplot-2.5.0/ultraplot/_subplots.py +398 -0
- ultraplot-2.5.0/ultraplot/_version.py +1 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/axes/base.py +196 -9
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/axes/geo.py +791 -7
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/colors.py +22 -1
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/constructor.py +20 -3
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/figure.py +184 -405
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/gridspec.py +3 -3
- ultraplot-2.5.0/ultraplot/internals/__init__.py +227 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/internals/docstring.py +53 -43
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/internals/fonts.py +83 -2
- ultraplot-2.4.0/ultraplot/internals/__init__.py → ultraplot-2.5.0/ultraplot/internals/kwargs.py +59 -202
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/internals/rcsetup.py +63 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_axes.py +44 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_colors.py +72 -1
- ultraplot-2.5.0/ultraplot/tests/test_docstring_helpers.py +63 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_figure.py +141 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_fonts.py +180 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_geographic.py +188 -3
- ultraplot-2.5.0/ultraplot/tests/test_inset.py +372 -0
- ultraplot-2.5.0/ultraplot/tests/test_kwargs_helpers.py +80 -0
- ultraplot-2.5.0/ultraplot/tests/test_release_metadata.py +106 -0
- ultraplot-2.5.0/ultraplot/tests/test_subplot_manager.py +406 -0
- ultraplot-2.5.0/ultraplot/tests/test_textalign.py +620 -0
- ultraplot-2.5.0/ultraplot/textalign.py +640 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/ui.py +6 -2
- {ultraplot-2.4.0 → ultraplot-2.5.0/ultraplot.egg-info}/PKG-INFO +1 -1
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot.egg-info/SOURCES.txt +8 -2
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot.egg-info/scm_file_list.json +403 -397
- ultraplot-2.5.0/ultraplot.egg-info/scm_version.json +8 -0
- ultraplot-2.4.0/tools/release/publish_zenodo.py +0 -364
- ultraplot-2.4.0/tools/release/sync_citation.py +0 -168
- ultraplot-2.4.0/ultraplot/_version.py +0 -1
- ultraplot-2.4.0/ultraplot/tests/test_inset.py +0 -29
- ultraplot-2.4.0/ultraplot/tests/test_release_metadata.py +0 -143
- ultraplot-2.4.0/ultraplot.egg-info/scm_version.json +0 -8
- {ultraplot-2.4.0 → ultraplot-2.5.0}/.github/ISSUE_TEMPLATE.md +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/.github/dependabot.yml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/.github/micromamba-condarc.yml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/.github/workflows/build-ultraplot.yml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/.github/workflows/main.yml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/.github/workflows/test-map.yml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/.gitignore +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/.pre-commit-config.yaml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/.readthedocs.yml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/CODEOFCONDUCT.md +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/CONTRIBUTING.rst +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/INSTALL.rst +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/LICENSE.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/README.rst +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/UltraPlotLogo.svg +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/codecov.yml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/1dplots.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/2dplots.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/Makefile +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/_ext/notoc.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/_scripts/fetch_releases.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/_static/custom.css +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/_static/custom.js +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/_static/example_plots/cartesian_example.svg +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/_static/example_plots/colorbars_legends_example.svg +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/_static/example_plots/colormaps_example.svg +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/_static/example_plots/panels_example.svg +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/_static/example_plots/projection_example.svg +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/_static/example_plots/subplot_example.svg +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/_static/logo_blank.svg +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/_static/logo_long.png +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/_static/logo_long.svg +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/_static/logo_social.png +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/_static/logo_social.svg +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/_static/logo_square.png +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/_templates/whatsnew_sidebar.html +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/about.rst +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/basics.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/cartesian.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/colorbars_legends.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/colormaps.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/colors.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/conf.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/configuration.rst +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/contributing.rst +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/cycles.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/README.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/colors/01_cycle_colormap.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/colors/02_diverging_colormap.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/colors/README.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/geo/01_robin_tracks.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/geo/02_orthographic_views.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/geo/03_projections_features.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/geo/04_choropleth.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/geo/README.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/layouts/01_shared_axes_abc.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/layouts/02_complex_layout_insets.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/layouts/03_spanning_labels.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/layouts/README.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/legend_types/01_semantic_legends.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/legends_colorbars/01_multi_colorbars.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/legends_colorbars/02_legend_inset_colorbar.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/legends_colorbars/03_semantic_legends.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/legends_colorbars/README.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/plot_types/01_curved_quiver.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/plot_types/02_network_graph.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/plot_types/03_lollipop.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/plot_types/04_datetime_series.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/plot_types/05_box_violin.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/plot_types/06_ridge_plot.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/plot_types/07_radar.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/plot_types/07_sankey.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/plot_types/08_chord_diagram.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/plot_types/08_ternary.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/plot_types/09_phylogeny.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/plot_types/10_circos_bed.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/plot_types/11_topic_ribbon.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/plot_types/12_taylor_diagram.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/examples/plot_types/README.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/external-links.rst +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/faq.rst +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/index.rst +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/install.rst +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/lazy_loading.rst +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/make.bat +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/networks.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/requirements-rtd.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/sphinxext/custom_roles.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/sphinxext/jupytext_cache.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/stats.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/ultraplotrc +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/usage.rst +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/docs/why.rst +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/environment.yml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/logo/PermanentMarker-Regular.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/logo/environment-logo.yml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/logo/logo.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/logo/run-linter.sh +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/logo/webicon.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/logo/whyUltraPlot.svg +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/noxfile.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/requirements-minimal.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/setup.cfg +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/tools/ci/build_test_map.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/tools/ci/select_tests.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/tools/ci/version_support.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/_lazy.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/axes/__init__.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/axes/_formatting.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/axes/cartesian.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/axes/container.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/axes/plot.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/axes/plot_types/__init__.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/axes/plot_types/circlize.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/axes/plot_types/curved_quiver.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/axes/plot_types/ribbon.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/axes/plot_types/sankey.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/axes/polar.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/axes/shared.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/axes/taylor.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/axes/three.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Algae.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Amp.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/BR.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Balance.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Blues1_r.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Blues2.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Blues3.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Blues4_r.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Blues5.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Blues6.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Blues7.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Blues8.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Blues9.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Boreal.json +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Browns1.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Browns2.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Browns3.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Browns4.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Browns5.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Browns6.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Browns7.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Browns8.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Browns9.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/ColdHot.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Crest.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Curl.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Deep.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Delta.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Dense.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Div.json +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/DryWet.json +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Dusk.json +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Fire.json +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Flare.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Glacial.json +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Greens1_r.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Greens2.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Greens3_r.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Greens4.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Greens5.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Greens6_r.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Greens7.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Greens8.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Haline.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Ice.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/IceFire.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Mako.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Marine.json +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Matter.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Mono.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/MonoCycle.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/NegPos.json +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Oranges1.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Oranges2.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Oranges3.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Oranges4.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Oxy.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Phase.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Purples1_r.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Purples2.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Purples3.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Reds1.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Reds2.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Reds3.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Reds4.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Reds5.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Rocket.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Solar.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Speed.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Stellar.json +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Sunrise.json +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Sunset.json +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Tempo.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Thermal.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Turbid.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Vivid.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Vlag.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Yellows1.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Yellows2.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Yellows3.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/Yellows4.xml +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/acton.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/bam.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/bamO.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/bamako.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/batlow.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/batlowK.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/batlowW.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/berlin.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/bilbao.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/broc.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/brocO.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/buda.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/bukavu.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/cork.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/corkO.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/davos.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/devon.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/fes.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/hawaii.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/imola.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/lajolla.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/lapaz.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/lisbon.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/nuuk.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/oleron.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/oslo.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/roma.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/romaO.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/tofino.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/tokyo.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/turku.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/vanimo.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/vik.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cmaps/vikO.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/colorbar.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/colors/opencolor.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/colors/xkcd.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/config.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cycles/538.hex +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cycles/FlatUI.hex +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cycles/Qual1.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cycles/Qual2.rgb +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cycles/bmh.hex +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cycles/classic.hex +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cycles/colorblind.hex +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cycles/colorblind10.hex +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cycles/default.hex +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cycles/ggplot.hex +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cycles/seaborn.hex +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/cycles/tableau.hex +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/demos.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/externals/__init__.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/externals/hsluv.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraMath-Bold.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraMath-ExtraLight.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraMath-Heavy.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraMath-Light.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraMath-Medium.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraMath-Regular.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraMath-SemiBold.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraMath-UltraLight.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraSans-Black.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraSans-BlackItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraSans-Bold.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraSans-BoldItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraSans-ExtraBold.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraSans-ExtraBoldItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraSans-ExtraLight.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraSans-ExtraLightItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraSans-Italic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraSans-Light.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraSans-LightItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraSans-Medium.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraSans-MediumItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraSans-Regular.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraSans-SemiBold.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/FiraSans-SemiBoldItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/LICENSE_FIRAMATH.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/LICENSE_FIRASANS.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/LICENSE_NOTOSANS.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/LICENSE_NOTOSERIF.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/LICENSE_OPENSANS.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/LICENSE_ROBOTO.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/LICENSE_SOURCESANS.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/LICENSE_SOURCESERIF.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/LICENSE_TEXGYRE.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/LICENSE_UBUNTU.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/NotoSans-Bold.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/NotoSans-BoldItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/NotoSans-Italic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/NotoSans-Regular.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/NotoSerif-Bold.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/NotoSerif-BoldItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/NotoSerif-Italic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/NotoSerif-Regular.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/OpenSans-Bold.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/OpenSans-BoldItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/OpenSans-Italic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/OpenSans-Regular.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/OpenSans-Semibold.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/OpenSans-SemiboldItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/Roboto-Black.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/Roboto-BlackItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/Roboto-Bold.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/Roboto-BoldItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/Roboto-Italic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/Roboto-Light.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/Roboto-LightItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/Roboto-Medium.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/Roboto-MediumItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/Roboto-Regular.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSansPro-Black.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSansPro-BlackItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSansPro-Bold.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSansPro-BoldItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSansPro-ExtraLight.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSansPro-ExtraLightItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSansPro-Italic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSansPro-Light.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSansPro-LightItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSansPro-Regular.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSansPro-SemiBold.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSansPro-SemiBoldItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSerifPro-Black.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSerifPro-BlackItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSerifPro-Bold.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSerifPro-BoldItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSerifPro-ExtraLight.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSerifPro-ExtraLightItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSerifPro-Italic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSerifPro-Light.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSerifPro-LightItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSerifPro-Regular.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSerifPro-SemiBold.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/SourceSerifPro-SemiBoldItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/Ubuntu-Bold.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/Ubuntu-BoldItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/Ubuntu-Italic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/Ubuntu-Light.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/Ubuntu-LightItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/Ubuntu-Medium.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/Ubuntu-MediumItalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/Ubuntu-Regular.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyreadventor-bold.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyreadventor-bolditalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyreadventor-italic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyreadventor-regular.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyrebonum-bold.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyrebonum-bolditalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyrebonum-italic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyrebonum-regular.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyrechorus-mediumitalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyrecursor-bold.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyrecursor-bolditalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyrecursor-italic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyrecursor-regular.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyreheros-bold.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyreheros-bolditalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyreheros-italic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyreheros-regular.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyrepagella-bold.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyrepagella-bolditalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyrepagella-italic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyrepagella-regular.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyreschola-bold.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyreschola-bolditalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyreschola-italic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyreschola-regular.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyretermes-bold.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyretermes-bolditalic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyretermes-italic.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/fonts/texgyretermes-regular.ttf +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/internals/benchmarks.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/internals/context.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/internals/guides.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/internals/inputs.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/internals/labels.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/internals/versions.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/internals/warnings.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/legend.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/proj.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/scale.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/__init__.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/conftest.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_1dplots.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_2dplots.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_animation.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_axes_alt_styles.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_axes_base_colorbar_helpers.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_base.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_circlize_integration.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_colorbar.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_colorbar_helpers_extra.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_colormap.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_colormap_helpers_extra.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_colors_helpers.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_config.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_config_helpers_extra.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_constructor.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_constructor_helpers_extra.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_core_versions.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_demos.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_docs.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_docs_fetch_releases.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_docs_search.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_external_axes_container_integration.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_external_container_edge_cases.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_external_container_mocked.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_format.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_gridspec.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_handlers.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_imports.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_imshow.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_inputs.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_inputs_helpers.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_integration.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_legend.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_plot.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_proj_helpers.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_projections.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_rcsetup_helpers.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_scale_helpers.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_semantic_legend.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_statistical_plotting.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_subplots.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_text_helpers.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_tickers.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/tests/test_ultralayout.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/text.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/ticker.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/ultralayout.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot/utils.py +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot.egg-info/dependency_links.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot.egg-info/requires.txt +0 -0
- {ultraplot-2.4.0 → ultraplot-2.5.0}/ultraplot.egg-info/top_level.txt +0 -0
|
@@ -121,6 +121,11 @@ jobs:
|
|
|
121
121
|
verbose: true
|
|
122
122
|
skip-existing: true
|
|
123
123
|
|
|
124
|
+
# NOTE: Publishing this release is what triggers the Zenodo archive. Zenodo's
|
|
125
|
+
# GitHub integration webhooks the 'release: published' event and mints a new
|
|
126
|
+
# version under the concept DOI in CITATION.cff -- no job, token, or API call
|
|
127
|
+
# of ours is involved. The integration only sees releases published *after* it
|
|
128
|
+
# was enabled, so it never backfills.
|
|
124
129
|
publish-github-release:
|
|
125
130
|
name: Publish GitHub release
|
|
126
131
|
needs: publish-pypi
|
|
@@ -133,52 +138,3 @@ jobs:
|
|
|
133
138
|
uses: softprops/action-gh-release@v3
|
|
134
139
|
with:
|
|
135
140
|
generate_release_notes: true
|
|
136
|
-
|
|
137
|
-
# publish-zenodo:
|
|
138
|
-
# name: Publish Zenodo release
|
|
139
|
-
# needs: publish-github-release
|
|
140
|
-
# runs-on: ubuntu-latest
|
|
141
|
-
# if: github.event_name == 'push'
|
|
142
|
-
# permissions:
|
|
143
|
-
# contents: read
|
|
144
|
-
# env:
|
|
145
|
-
# ZENODO_ACCESS_TOKEN: ${{ secrets.ZENODO_ACCESS_TOKEN }}
|
|
146
|
-
# steps:
|
|
147
|
-
# - uses: actions/checkout@v7
|
|
148
|
-
# with:
|
|
149
|
-
# fetch-depth: 0
|
|
150
|
-
#
|
|
151
|
-
# - uses: actions/setup-python@v6
|
|
152
|
-
# with:
|
|
153
|
-
# python-version: "3.12"
|
|
154
|
-
#
|
|
155
|
-
# - name: Install release tooling
|
|
156
|
-
# run: |
|
|
157
|
-
# python -m pip install --upgrade pip
|
|
158
|
-
# python -m pip install PyYAML
|
|
159
|
-
# shell: bash
|
|
160
|
-
#
|
|
161
|
-
# - name: Download artifacts
|
|
162
|
-
# uses: actions/download-artifact@v8
|
|
163
|
-
# with:
|
|
164
|
-
# name: dist-${{ github.sha }}-${{ github.run_id }}-${{ github.run_number }}
|
|
165
|
-
# path: dist
|
|
166
|
-
#
|
|
167
|
-
# - name: Generate release citation metadata
|
|
168
|
-
# run: |
|
|
169
|
-
# python tools/release/sync_citation.py \
|
|
170
|
-
# --tag "${GITHUB_REF_NAME}" \
|
|
171
|
-
# --output "${RUNNER_TEMP}/CITATION.cff"
|
|
172
|
-
# shell: bash
|
|
173
|
-
#
|
|
174
|
-
# - name: Check tree stayed clean
|
|
175
|
-
# run: |
|
|
176
|
-
# git diff --quiet || (git status --short && git diff && exit 1)
|
|
177
|
-
# shell: bash
|
|
178
|
-
#
|
|
179
|
-
# - name: Publish to Zenodo
|
|
180
|
-
# run: |
|
|
181
|
-
# python tools/release/publish_zenodo.py \
|
|
182
|
-
# --dist-dir dist \
|
|
183
|
-
# --citation-file "${RUNNER_TEMP}/CITATION.cff"
|
|
184
|
-
# shell: bash
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"upload_type": "software",
|
|
3
|
+
"title": "UltraPlot",
|
|
4
|
+
"description": "A succinct matplotlib wrapper for making beautiful, publication-quality graphics.",
|
|
5
|
+
"creators": [
|
|
6
|
+
{
|
|
7
|
+
"name": "van Elteren, Casper",
|
|
8
|
+
"orcid": "0000-0001-9862-8936"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"name": "Becker, Matthew R.",
|
|
12
|
+
"orcid": "0000-0001-7774-2246"
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"license": "mit",
|
|
16
|
+
"access_right": "open",
|
|
17
|
+
"keywords": [
|
|
18
|
+
"plotting",
|
|
19
|
+
"matplotlib",
|
|
20
|
+
"scientific visualization",
|
|
21
|
+
"wrapper"
|
|
22
|
+
],
|
|
23
|
+
"related_identifiers": [
|
|
24
|
+
{
|
|
25
|
+
"identifier": "https://github.com/Ultraplot/UltraPlot",
|
|
26
|
+
"relation": "isSupplementTo",
|
|
27
|
+
"scheme": "url"
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
|
@@ -8,8 +8,12 @@ authors:
|
|
|
8
8
|
- family-names: "Becker"
|
|
9
9
|
given-names: "Matthew R."
|
|
10
10
|
orcid: "https://orcid.org/0000-0001-7774-2246"
|
|
11
|
-
date-released
|
|
12
|
-
|
|
11
|
+
# NOTE: Deliberately no 'version' or 'date-released'. The package version comes
|
|
12
|
+
# from the git tag via setuptools_scm, and Zenodo's GitHub integration takes the
|
|
13
|
+
# version and publication date from the release itself. Pinning them here means
|
|
14
|
+
# hand-editing this file on every release, which is how it drifted to 2.1.5 while
|
|
15
|
+
# the project shipped 2.4.0. The DOI below is the *concept* DOI: it is stable
|
|
16
|
+
# across releases and always resolves to the latest version.
|
|
13
17
|
doi: "10.5281/zenodo.15733564"
|
|
14
18
|
repository-code: "https://github.com/Ultraplot/UltraPlot"
|
|
15
19
|
license: "MIT"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ultraplot
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.5.0
|
|
4
4
|
Summary: A succinct matplotlib wrapper for making beautiful, publication-quality graphics.
|
|
5
5
|
Author-email: Casper van Elteren <caspervanelteren@gmail.com>, Luke Davis <lukelbd@gmail.com>
|
|
6
6
|
Maintainer-email: Casper van Elteren <caspervanelteren@gmail.com>, "Matthew R. Becker" <becker.mr@gmail.com>
|
|
@@ -133,6 +133,16 @@ Demo functions
|
|
|
133
133
|
:toctree: api
|
|
134
134
|
|
|
135
135
|
|
|
136
|
+
Text alignment
|
|
137
|
+
==============
|
|
138
|
+
|
|
139
|
+
.. automodule:: ultraplot.textalign
|
|
140
|
+
:no-private-members:
|
|
141
|
+
|
|
142
|
+
.. automodsumm:: ultraplot.textalign
|
|
143
|
+
:toctree: api
|
|
144
|
+
|
|
145
|
+
|
|
136
146
|
Miscellaneous functions
|
|
137
147
|
=======================
|
|
138
148
|
|
|
@@ -100,6 +100,88 @@ fig, axs = uplt.show_fonts(family="tex-gyre")
|
|
|
100
100
|
# :rcraw:`mathtext.fontset` back to one of matplotlib's math-specialized font sets
|
|
101
101
|
# (e.g., ``'stixsans'`` or ``'dejavusans'``).
|
|
102
102
|
#
|
|
103
|
+
# In short, math fonts can be tailored to taste at three levels, depending on
|
|
104
|
+
# how much of the "LaTeX look" you want:
|
|
105
|
+
#
|
|
106
|
+
# #. **Match the document font** (the default). With the ``'custom'`` font set,
|
|
107
|
+
# math follows the active text font -- including fonts assigned to
|
|
108
|
+
# individual text objects, as demonstrated below.
|
|
109
|
+
# #. **Computer Modern symbols**. Keep the active font for letters and numbers
|
|
110
|
+
# but render ``\mathcal`` and big operators with authentic Computer Modern
|
|
111
|
+
# glyphs by setting :rcraw:`mathtext.cm_symbols` to ``True``
|
|
112
|
+
# (see :ref:`below <ug_fonts_cm>`).
|
|
113
|
+
# #. **Full LaTeX**. Set matplotlib's :rcraw:`text.usetex` to ``True`` to
|
|
114
|
+
# delegate all text rendering to an external LaTeX installation. This gives
|
|
115
|
+
# complete LaTeX typesetting but is much slower and requires TeX on your
|
|
116
|
+
# system -- with the previous two options it is rarely necessary.
|
|
117
|
+
#
|
|
118
|
+
# The example below demonstrates the first level: the same expression rendered
|
|
119
|
+
# with different fonts assigned per text object.
|
|
120
|
+
|
|
121
|
+
# %%
|
|
122
|
+
import ultraplot as uplt
|
|
123
|
+
|
|
124
|
+
expr = (
|
|
125
|
+
r"$\mathcal{ABCXYZ}\quad"
|
|
126
|
+
r"\sum_{i=0}^{n}\quad"
|
|
127
|
+
r"\prod_{j=1}^{m}\quad"
|
|
128
|
+
r"\int_a^b\quad"
|
|
129
|
+
r"\oint_C$"
|
|
130
|
+
)
|
|
131
|
+
|
|
132
|
+
fig, axs = uplt.subplots(nrows=3, refwidth=6, refheight=1.1, share=False, span=False)
|
|
133
|
+
for ax, font in zip(axs, ("TeX Gyre Heros", "Fira Math", "DejaVu Sans")):
|
|
134
|
+
ax.text(0.02, 0.5, expr, transform="axes", va="center", fontsize=24, fontname=font)
|
|
135
|
+
ax.format(title=font, titleloc="left")
|
|
136
|
+
axs.format(xlocator="null", ylocator="null", xspineloc="none", yspineloc="none")
|
|
137
|
+
|
|
138
|
+
# %% [raw] raw_mimetype="text/restructuredtext"
|
|
139
|
+
#
|
|
140
|
+
# .. _ug_fonts_cm:
|
|
141
|
+
#
|
|
142
|
+
# Computer Modern symbols
|
|
143
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^
|
|
144
|
+
#
|
|
145
|
+
# If you want to retain the active alphabet and number fonts while using
|
|
146
|
+
# Computer Modern for selected LaTeX-style symbols, set :rcraw:`mathtext.cm_symbols`
|
|
147
|
+
# to ``True``. This routes ``\mathcal`` through ``cmsy10`` and big operators like
|
|
148
|
+
# ``\sum``, ``\prod``, ``\int``, ``\oint``, ``\bigcup``, and ``\bigoplus`` through
|
|
149
|
+
# ``cmex10``. This does not affect ordinary letters and numbers, and it does not
|
|
150
|
+
# provide a Computer Modern ``\mathfrak`` font because matplotlib's bundled
|
|
151
|
+
# mathtext fonts do not include one. Note that math text is parsed when the
|
|
152
|
+
# figure is *drawn*, so the setting must be active at draw time -- assign it
|
|
153
|
+
# globally rather than wrapping plotting commands in a context block.
|
|
154
|
+
|
|
155
|
+
# %%
|
|
156
|
+
fig, ax = uplt.subplots(refwidth=6, refheight=1.1)
|
|
157
|
+
ax.text(0.02, 0.5, expr, transform="axes", va="center", fontsize=24)
|
|
158
|
+
ax.format(
|
|
159
|
+
title="Default custom math text",
|
|
160
|
+
titleloc="left",
|
|
161
|
+
xlocator="null",
|
|
162
|
+
ylocator="null",
|
|
163
|
+
xspineloc="none",
|
|
164
|
+
yspineloc="none",
|
|
165
|
+
)
|
|
166
|
+
|
|
167
|
+
# %%
|
|
168
|
+
uplt.rc["mathtext.cm_symbols"] = True
|
|
169
|
+
fig, ax = uplt.subplots(refwidth=6, refheight=1.1)
|
|
170
|
+
ax.text(0.02, 0.5, expr, transform="axes", va="center", fontsize=24)
|
|
171
|
+
ax.format(
|
|
172
|
+
title="Computer Modern math symbols",
|
|
173
|
+
titleloc="left",
|
|
174
|
+
xlocator="null",
|
|
175
|
+
ylocator="null",
|
|
176
|
+
xspineloc="none",
|
|
177
|
+
yspineloc="none",
|
|
178
|
+
)
|
|
179
|
+
|
|
180
|
+
# %%
|
|
181
|
+
uplt.rc["mathtext.cm_symbols"] = False # restore the default
|
|
182
|
+
|
|
183
|
+
# %% [raw] raw_mimetype="text/restructuredtext"
|
|
184
|
+
#
|
|
103
185
|
# A table of math text containing the sans-serif fonts packaged with UltraPlot is shown
|
|
104
186
|
# below. The dummy glyph "¤" is shown where a given math character is unavailable
|
|
105
187
|
# for a particular font (in practice, the fallback font :rc:`mathtext.fallback` is used
|
|
@@ -88,8 +88,8 @@ fig.format(
|
|
|
88
88
|
)
|
|
89
89
|
|
|
90
90
|
# %%
|
|
91
|
-
import ultraplot as uplt
|
|
92
91
|
import numpy as np
|
|
92
|
+
import ultraplot as uplt
|
|
93
93
|
|
|
94
94
|
state = np.random.RandomState(51423)
|
|
95
95
|
data = (state.rand(20, 20) - 0.48).cumsum(axis=1).cumsum(axis=0)
|
|
@@ -192,3 +192,74 @@ ix = ax.inset(
|
|
|
192
192
|
)
|
|
193
193
|
ix.format(xlim=(2, 4), ylim=(2, 4), color="red8", linewidth=1.5, ticklabelweight="bold")
|
|
194
194
|
ix.pcolormesh(data, cmap="Grays", levels=N, inbounds=False)
|
|
195
|
+
|
|
196
|
+
# %% [raw] raw_mimetype="text/restructuredtext"
|
|
197
|
+
# Hawkeye map insets
|
|
198
|
+
# ~~~~~~~~~~~~~~~~~~
|
|
199
|
+
#
|
|
200
|
+
# :class:`~ultraplot.axes.GeoAxes` adds :meth:`~ultraplot.axes.GeoAxes.hawkeye`
|
|
201
|
+
# for geographic callout maps. The inset is anchored at ``xy`` in a parent coordinate
|
|
202
|
+
# system, and its ``size`` is a fraction of the parent axes. Supply ``extent`` to set
|
|
203
|
+
# the inset map scope and draw a matching indicator and optional connectors on the
|
|
204
|
+
# parent map. Hawkeyes are excluded from automatic layout, so they can extend beyond
|
|
205
|
+
# the parent axes without reserving subplot space.
|
|
206
|
+
#
|
|
207
|
+
# Rectangular hawkeyes preserve both the requested extent and projection scale. A
|
|
208
|
+
# circular frame cannot simultaneously preserve projection scale and display an exact
|
|
209
|
+
# non-square extent. Circular hawkeyes therefore expand the shorter projected dimension
|
|
210
|
+
# to retain the projection; use a square extent when the exact circular map scope is
|
|
211
|
+
# important, or pass ``aspect='auto'`` to fit the exact extent with distortion.
|
|
212
|
+
#
|
|
213
|
+
# The following dependency-free example shows a Singapore city locator on a world map.
|
|
214
|
+
# The returned inset is an ordinary geographic axes, so optional geospatial libraries
|
|
215
|
+
# can draw external data inside it. For example, `OSMnx <https://osmnx.readthedocs.io/>`__
|
|
216
|
+
# can provide street geometry when it is installed separately:
|
|
217
|
+
#
|
|
218
|
+
# .. code-block:: python
|
|
219
|
+
#
|
|
220
|
+
# import osmnx as ox
|
|
221
|
+
# from cartopy import crs as ccrs
|
|
222
|
+
#
|
|
223
|
+
# network = ox.graph_from_point((1.3521, 103.8198), dist=8_000, network_type="drive")
|
|
224
|
+
# streets = ox.graph_to_gdfs(network, nodes=False)
|
|
225
|
+
# streets.plot(ax=inax, color="0.3", linewidth=0.4, transform=ccrs.PlateCarree())
|
|
226
|
+
#
|
|
227
|
+
# The data download and OpenStreetMap attribution are the responsibility of the
|
|
228
|
+
# application using that optional integration.
|
|
229
|
+
|
|
230
|
+
# %%
|
|
231
|
+
singapore = (103.8198, 1.3521)
|
|
232
|
+
fig, ax = uplt.subplots(proj="robin", refwidth=4)
|
|
233
|
+
ax.format(land=True, landcolor="gray8", oceancolor="blue9")
|
|
234
|
+
ax.plot(
|
|
235
|
+
*singapore,
|
|
236
|
+
marker="o",
|
|
237
|
+
color="red",
|
|
238
|
+
markeredgecolor="white",
|
|
239
|
+
markeredgewidth=0.8,
|
|
240
|
+
ms=5,
|
|
241
|
+
transform="cyl",
|
|
242
|
+
)
|
|
243
|
+
ax.text(106, 4, "Singapore", color="red", size=7, transform="map")
|
|
244
|
+
inax = ax.hawkeye(
|
|
245
|
+
(0.97, 0.97),
|
|
246
|
+
size=0.23,
|
|
247
|
+
anchor="ur",
|
|
248
|
+
proj="merc",
|
|
249
|
+
extent=(103.76, 103.90, 1.27, 1.41),
|
|
250
|
+
shape="circle",
|
|
251
|
+
target="circle",
|
|
252
|
+
connector="line",
|
|
253
|
+
color="red",
|
|
254
|
+
indicator_kw={"linewidth": 1.5},
|
|
255
|
+
)
|
|
256
|
+
inax.format(land=True, landcolor="gray9", oceancolor="blue9")
|
|
257
|
+
inax.plot(
|
|
258
|
+
*singapore,
|
|
259
|
+
marker="o",
|
|
260
|
+
color="red",
|
|
261
|
+
markeredgecolor="white",
|
|
262
|
+
markeredgewidth=0.8,
|
|
263
|
+
ms=5,
|
|
264
|
+
transform="cyl",
|
|
265
|
+
)
|
|
@@ -516,6 +516,60 @@ fig.format(
|
|
|
516
516
|
)
|
|
517
517
|
|
|
518
518
|
|
|
519
|
+
# %% [raw] raw_mimetype="text/restructuredtext"
|
|
520
|
+
# .. _ug_geo_layout:
|
|
521
|
+
#
|
|
522
|
+
# Geographic axes in mixed subplot layouts
|
|
523
|
+
# -----------------------------------------
|
|
524
|
+
#
|
|
525
|
+
# Geographic axes preserve the aspect ratio required by their projection. This is
|
|
526
|
+
# important for interpreting distances and shapes correctly, but it creates a layout
|
|
527
|
+
# choice when a map shares a GridSpec with Cartesian axes or maps that have a different
|
|
528
|
+
# natural aspect ratio. A fixed-aspect map cannot both fill a differently shaped subplot
|
|
529
|
+
# slot *and* preserve its projection geometry.
|
|
530
|
+
#
|
|
531
|
+
# By default, UltraPlot preserves the map aspect. If the slot is a different shape, the
|
|
532
|
+
# visible map is centered inside it. This keeps the map accurate, but decorations attached
|
|
533
|
+
# to the visible map boundary can stop lining up with decorations on neighboring subplots.
|
|
534
|
+
# For example, the following uses ``abcanchor='slot'`` to attach the map's a-b-c label to
|
|
535
|
+
# its unadjusted GridSpec slot instead. The map itself remains aspect-faithful.
|
|
536
|
+
|
|
537
|
+
# %%
|
|
538
|
+
import ultraplot as uplt
|
|
539
|
+
|
|
540
|
+
layout = [[1, 1, 1, 2, 2, 2], [3, 3, 4, 4, 5, 5]]
|
|
541
|
+
fig, axs = uplt.subplots(layout, refwidth=2.4, proj={4: "cyl"}, share=False)
|
|
542
|
+
axs[3].format(
|
|
543
|
+
lonlim=(0, 1),
|
|
544
|
+
latlim=(0, 1),
|
|
545
|
+
abcanchor="slot", # align its a-b-c label with the Cartesian subplot slots
|
|
546
|
+
)
|
|
547
|
+
fig.format(abc="A.", abcloc="left")
|
|
548
|
+
|
|
549
|
+
|
|
550
|
+
# %% [raw] raw_mimetype="text/restructuredtext"
|
|
551
|
+
# ``abcanchor`` has two modes:
|
|
552
|
+
#
|
|
553
|
+
# * ``'axes'`` (the default) attaches the label to the visible map boundary. This is
|
|
554
|
+
# usually best when the map is the visual focus.
|
|
555
|
+
# * ``'slot'`` attaches it to the original GridSpec slot. This is useful when labels
|
|
556
|
+
# should form a regular grid across mixed subplot types.
|
|
557
|
+
#
|
|
558
|
+
# There are two other deliberate trade-offs, depending on what the figure needs:
|
|
559
|
+
#
|
|
560
|
+
# * Use ``aspect='auto'`` with :meth:`~ultraplot.axes.GeoAxes.format` to stretch a map
|
|
561
|
+
# to fill its slot. This preserves the GridSpec geometry but distorts the projection,
|
|
562
|
+
# so it is generally unsuitable when geographic shape or scale matters.
|
|
563
|
+
# * Make the map the layout reference with ``ref=4`` in the above call to
|
|
564
|
+
# :func:`~ultraplot.ui.subplots`. UltraPlot then resizes the overall figure so that
|
|
565
|
+
# the map fills its slot while retaining its aspect. This is useful when the map,
|
|
566
|
+
# rather than the Cartesian axes, should determine the figure geometry.
|
|
567
|
+
#
|
|
568
|
+
# If none of these trade-offs is appropriate, change the map extent so that its natural
|
|
569
|
+
# aspect better matches the intended GridSpec slot. That preserves projection geometry,
|
|
570
|
+
# but necessarily changes the plotted geographic domain.
|
|
571
|
+
|
|
572
|
+
|
|
519
573
|
# %% [raw] raw_mimetype="text/restructuredtext"
|
|
520
574
|
# .. _ug_zoom:
|
|
521
575
|
#
|
|
@@ -395,6 +395,14 @@ for (name1, equal), (name2, group) in zip(equals, groups):
|
|
|
395
395
|
# Explicit sharing levels still force sharing attempts and may warn when
|
|
396
396
|
# incompatible axes are encountered.
|
|
397
397
|
#
|
|
398
|
+
# When figure-level row or column labels and a shared spanning axis label use
|
|
399
|
+
# the same side, the row or column labels are placed nearer the axes and the
|
|
400
|
+
# spanning label is placed outside them. Control this gap with the
|
|
401
|
+
# :rc:`leftlabel.sharedpad`, :rc:`rightlabel.sharedpad`,
|
|
402
|
+
# :rc:`bottomlabel.sharedpad`, and :rc:`toplabel.sharedpad` settings. These
|
|
403
|
+
# can also be passed to ``format`` without periods; for example,
|
|
404
|
+
# ``fig.format(leftlabelsharedpad='2em')``.
|
|
405
|
+
#
|
|
398
406
|
# The below examples demonstrate the effect of various axis and label sharing
|
|
399
407
|
# settings on the appearance of several subplot grids.
|
|
400
408
|
|
|
@@ -66,6 +66,7 @@ exclude = ["**/*.ipynb"]
|
|
|
66
66
|
|
|
67
67
|
[tool.pytest.ini_options]
|
|
68
68
|
filterwarnings = [
|
|
69
|
+
"ignore:'parseString' deprecated - use 'parse_string':DeprecationWarning:matplotlib._fontconfig_pattern",
|
|
69
70
|
"ignore:'resetCache' deprecated - use 'reset_cache':DeprecationWarning:matplotlib._fontconfig_pattern",
|
|
70
71
|
]
|
|
71
72
|
mpl-default-style = { axes.prop_cycle = "cycler('color', ['#4c72b0ff', '#55a868ff', '#c44e52ff', '#8172b2ff', '#ccb974ff', '#64b5cdff'])" }
|
|
@@ -101,6 +101,7 @@ if TYPE_CHECKING:
|
|
|
101
101
|
from .scale import SineLatitudeScale as SineLatitudeScale
|
|
102
102
|
from .scale import SymmetricalLogScale as SymmetricalLogScale
|
|
103
103
|
from .text import CurvedText as CurvedText
|
|
104
|
+
from .textalign import align_text as align_text
|
|
104
105
|
from .ultralayout import ColorbarLayoutSolver as ColorbarLayoutSolver
|
|
105
106
|
from .ultralayout import compute_ultra_positions as compute_ultra_positions
|
|
106
107
|
from .ultralayout import get_grid_positions_ultra as get_grid_positions_ultra
|