Releases: Ultraplot/ultraplot
v1.50.2
What's Changed
- perf: run comparison tests at the same time as the main tests by @beckermr in #213
- fix cycler setting to 1 when only 1 column is parsed by @cvanelteren in #218
- Skip sharing logic when colorbar is added to GeoPlots. by @cvanelteren in #219
- Restore redirection for tricontourf for GeoPlotting by @cvanelteren in #222
- Fix numerous geo docs visuals by @cvanelteren in #223
- Allow rasterization on GeoFeatures. by @cvanelteren in #220
- more fixes by @cvanelteren in #224
- Docs fix3 by @cvanelteren in #225
Full Changelog: v1.50.1...v1.50.2
v1.50.1
v1.50: Networks, lollipops and sharing
UltraPlot v1.50
Version v1.50 is a major milestone for UltraPlot. As we become more familiar with the codebase, we’ve opened the door to new features—balancing innovation with continuous backend improvements and bug fixes.
🌍 GeoAxes Sharing
You can now share axes between subplots using GeoAxes, as long as they use the same rectilinear projection. This enables cleaner, more consistent layouts when working with geographical data. |
![]() |
🕸️ Network Graphs
UltraPlot now supports network visualizations out of the box. With smart defaults and simple customization options, creating beautiful network plots is easier than ever. |
![]() |
Network plotting code
import networkx as nx, ultraplot as uplt
n = 100
g = nx.random_geometric_graph(n, radius=0.2)
c = uplt.colormaps.get_cmap("viko")
c = c(np.linspace(0, 1, n))
node = dict(
node_size=np.random.rand(n) * 100,
node_color=c,
)
fig, ax = uplt.subplots()
ax.graph(g, layout="kamada_kawai", node_kw=node)
fig.show()
🍭 Lollipop Graphs
A sleek alternative to bar charts, lollipop graphs are now available directly through UltraPlot. They shine when visualizing datasets with many bars, reducing visual clutter while retaining clarity. |
![]() |
Lollipop example code
import ultraplot as uplt, pandas as pd, numpy as np
data = np.random.rand(5, 5).cumsum(axis=0).cumsum(axis=1)[:, ::-1]
data = pd.DataFrame(
data,
columns=pd.Index(np.arange(1, 6), name="column"),
index=pd.Index(["a", "b", "c", "d", "e"], name="row idx"),
)
fig, ax = uplt.subplots(ncols=2, share=0)
ax[0].lollipop(
data,
stemcolor="green",
stemwidth=2,
marker="d",
edgecolor="k",
)
ax[1].lollipoph(data, linestyle="solid")
What's Changed
- separate logger for ultraplot and matplotlib by @cvanelteren in #178
- Capture warning by @cvanelteren in #180
- tmp turning of test by @cvanelteren in #183
- Skip missing tests if added in PR by @cvanelteren in #175
- Revert "Skip missing tests if added in PR" by @beckermr in #184
- rm conftest from codecov by @cvanelteren in #187
- skip tests properly by @cvanelteren in #186
- Fix colorbar loc by @cvanelteren in #182
- Fix bar alpha by @cvanelteren in #192
- make import uplt to be consistent with rest of repo by @cvanelteren in #195
- Ensure that shared labels are consistently updated. by @cvanelteren in #177
- sensible defaults and unittest by @cvanelteren in #189
- Deprecation fix mpl 3.10 and beyond by @cvanelteren in #69
- Add network plotting to UltraPlot by @cvanelteren in #169
- Hotfix test by @cvanelteren in #196
- Discrete colors for quiver by @cvanelteren in #198
- correct url for basemap objects by @cvanelteren in #202
- override logx/y/log with updated docstring by @cvanelteren in #203
- Add lollipop graph by @cvanelteren in #194
- Fix network linking in docs and api refs by @cvanelteren in #205
- Avoid getting edges and setting centers for some shaders by @cvanelteren in #208
- Fix some references in inset docs by @cvanelteren in #209
- rm dep warning by @cvanelteren in #210
- [Feature add] Share Axes in GeoPlot + bug fixes by @cvanelteren in #159
Full Changelog: v1.11...v1.5
Various bug fixes
What's Changed
- Update intersphinx links by @cvanelteren in #128
- Update geo doc by @cvanelteren in #129
- Hotfix update geo doc by @cvanelteren in #130
- New site, who dis? by @cvanelteren in #132
- Add about page by @cvanelteren in #133
- Make it mobile friendly by @cvanelteren in #134
- Add gallery to github page by @cvanelteren in #140
- Fix readme by @cvanelteren in #142
- Fix readme fixed sizes by @cvanelteren in #143
- added page for errors by @cvanelteren in #141
- Bump dawidd6/action-download-artifact from 2 to 6 in /.github/workflows by @dependabot in #144
- fix: checkout from correct fork by @beckermr in #145
- Set seed prior to test to ensure fidelity by @cvanelteren in #148
- Move warning inside pytest config by @cvanelteren in #151
- Fix scaler parsing by @cvanelteren in #153
- Update site logo by @cvanelteren in #154
- Fix minor grid showing on cbar by @cvanelteren in #150
- Add option to place abc indicator outside the axis bbox by @cvanelteren in #139
- Add unitests for ultraplot.internals.fonts by @cvanelteren in #156
- Minor refactor of unittests by @cvanelteren in #157
- Make anchor_mode default by @cvanelteren in #161
- Ipy rc kernel reset by @cvanelteren in #164
- allow subfigure formatting by @cvanelteren in #167
- make cbar labelloc possible for all direction by @cvanelteren in #165
- Add pyarrow to rm pandas error by @cvanelteren in #171
- Center figures in docs by @cvanelteren in #170
- mv toc to left by @cvanelteren in #172
- surpress warnings on action by @cvanelteren in #174
Full Changelog: v1.10.0...v1.11
v1.10.0 Ticks for Geoaxes
This release marks a newly added feature: ticks on GeoAxes
This allows for users to set ticks for the x and or y axis. These can be controlled by lonticklen
, latticklen
or ticklen
for controlling the x
, y
or both axis at the same time. This works independently to the major and minor gridlines allow for optimal control over the look and feel of your plots.
What's Changed
- prod: add me to maintainers by @beckermr in #117
- prod: only use readthedocs for PR tests by @beckermr in #118
- feat: enable test coverage with codecov by @beckermr in #121
- dynamically build what's new by @cvanelteren in #122
- rm extra == line by @cvanelteren in #123
- bugfix for Axes.legend when certain keywords are set to str by @syrte in #124
- reduce verbosity of extension by @cvanelteren in #127
- allow ticks for geoaxes by @cvanelteren in #126
New Contributors
Full Changelog: v1.0.9...v1.10.0
v1.0.9: IPython 9.0.0 compatibility and numerous backend fixes.
What's Changed
- filter out property if not set by @cvanelteren in #99
- Add texgyre to docs by @cvanelteren in #101
- Texgyre fix by @cvanelteren in #102
- rm warnings when downloading data inside env by @cvanelteren in #104
- prod: only build ultraplot when ultraplot src changes by @cvanelteren in #106
- Gitignore baseline by @cvanelteren in #109
- Fix colorbar ticks by @cvanelteren in #108
- Attempt fix workflow docs build by @cvanelteren in #114
- rm ref semver by @cvanelteren in #112
- Only store failed tests mpl-pytest by @cvanelteren in #113
- fix: matrix test for no changes is running when it should not be by @beckermr in #115
Full Changelog: v1.0.8...v1.0.9
v1.0.8-2: Hotfix cycling properties
Hot fix for cycle not recognizing color argument
What's Changed
- filter out property if not set by @cvanelteren in #99
Full Changelog: v1.0.8...v1.0.8-2
v1.0.8: Minor bug fixes
Fixes an issue where ticks were not properly set when giving levels and ticks in pcolormesh
and related functions in the colorbar. See more of the changes below.
What's Changed
- fix: remove race condition for pushes of tags by @beckermr in #78
- use seed for reproducibility by @cvanelteren in #79
- Fix demo function not extracting colormaps by @cvanelteren in #83
- allows cycle to be a tuple by @cvanelteren in #87
- Fixes heatmap not showing labels. by @cvanelteren in #91
- Doc link fix by @cvanelteren in #92
- explicitly override minor locator if given by @cvanelteren in #96
Full Changelog: v1.0.7...v1.0.8
v1.0.7: Dev update.
What's Changed
- added path explicitly on publish by @cvanelteren in #77
Full Changelog: v1.0.6...v1.0.7
v1.0.6: Ensure norm fix
What's Changed
- add case where cycler is already a cycle by @cvanelteren in #65
- fix: make sure PRs do not mess with releases by @beckermr in #67
- fix: ensure pypi readme works ok by @beckermr in #70
- feat: deduplicate pypi publish workflow by @beckermr in #71
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #73
- use norm explicitly by @cvanelteren in #76
New Contributors
- @pre-commit-ci made their first contribution in #73
Full Changelog: v1.0.5...v1.0.6