Skip to content

Add support for pgf.documentclass rcParam #30063

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 306 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
306 commits
Select commit Hold shift + click to select a range
335e6b4
Fix FT_CHECK compat with cibuildwheel. (#30123)
anntzer May 31, 2025
2a82d0c
Clean up AFM code (#30121)
QuLogic May 31, 2025
b2a9748
Merge pull request #30070 from oscargus/bezierdep
dstansby Jun 1, 2025
155ae8a
Updates based on code review
trygvrad Jun 1, 2025
6083ecd
Remove apply_theta_transforms argument (#30004)
dstansby Jun 2, 2025
fea06c9
ENH: Add grouped_bar() method
timhoffm Jul 13, 2024
556895d
Add tests for grouped_bar()
timhoffm Jan 23, 2025
900ace5
Simplify "Grouped bar chart with labels" using grouped_bar()
timhoffm Jan 22, 2025
7fa82d7
Apply suggestions from code review
timhoffm Jan 23, 2025
8cf06c4
Docstring wording
timhoffm Feb 1, 2025
a4ed768
Update lib/matplotlib/axes/_axes.py
timhoffm Feb 5, 2025
d9aa5f6
Add test for grouped_bar() return value
timhoffm Jun 2, 2025
e0afe74
Apply suggestions from code review
timhoffm Jun 2, 2025
150165b
Tiny update from code review
trygvrad Jun 2, 2025
b09a0c7
Merge pull request #30112 from trygvrad/colorbar-docs-colorizer
timhoffm Jun 2, 2025
1426f6a
DOC: Document the properties of Normalize
timhoffm Jun 2, 2025
8ded1f0
DOC: Clarify that types in docstrings do not use formal type annotation
timhoffm Jun 2, 2025
563eee5
Merge pull request #30131 from timhoffm/doc-normalize-properties
QuLogic Jun 3, 2025
9120862
Merge pull request #30132 from timhoffm/doc-types
QuLogic Jun 3, 2025
9861235
BLD: Remove FreeType from Agg backend extension
QuLogic Jun 4, 2025
d43672a
Make NavigationToolbar.configure_subplots return value consistent (#3…
QuLogic Jun 4, 2025
8abab03
Keep a non-functional type1Descriptors
jkseppan Jun 4, 2025
5535df4
Merge pull request #30118 from oscargus/forkci
QuLogic Jun 4, 2025
cf6069a
Merge pull request #29392 from r3kste/pdf_hatch_fill_patch
QuLogic Jun 4, 2025
0dc15a9
js: Fix externally-controlled format strings
QuLogic Jun 5, 2025
f9d4ed2
Remove deprecations: is_bbox and more
oscargus May 18, 2025
d9e0853
Merge pull request #30144 from QuLogic/js-format
timhoffm Jun 5, 2025
06314bf
Merge pull request #30137 from QuLogic/no-backend-ft
tacaswell Jun 5, 2025
17653a6
Merge pull request #28560 from timhoffm/grouped_bar
QuLogic Jun 5, 2025
01e919a
Merge pull request #30067 from oscargus/deps39
QuLogic Jun 5, 2025
d5ab3b0
Install extra TeX fonts on one runner only
jkseppan Jun 5, 2025
7c49d52
Merge pull request #20716 from jkseppan/type1-subset
QuLogic Jun 6, 2025
f654a74
Various small code cleanups from review
asmeurer Jun 6, 2025
13e5291
Merge branch 'main' into output-base-name
asmeurer Jun 6, 2025
20bed26
Add a test for image-basename with multiple figures
asmeurer Jun 6, 2025
7f56c94
Disallow \ in output_base in the plot directive
asmeurer Jun 6, 2025
550e382
Fix the source link when using a custom basename to include the .py e…
asmeurer Jun 6, 2025
d4f2440
Make the sphinx extension tests more robust to manually building the …
asmeurer Jun 6, 2025
bab3aaf
Use shutil.ignore_patterns
asmeurer Jun 6, 2025
08cdd1a
Update font-related documentation
jkseppan Jun 7, 2025
3574a7e
Add example to histogram colorbar on galleries (#30107)
livlutz Jun 8, 2025
c8eba90
Rename image-basename to filename-prefix
asmeurer Jun 8, 2025
51bc2b8
Fix typo in backend_ps.py comment: change 'and them scale them' to 'a…
nakanoh Jun 9, 2025
5f922ff
Merge pull request #30151 from nakanoh/fix-them-to-then-in-ps-backend…
timhoffm Jun 9, 2025
0ee8e81
Throw exception when alpha is out of bounds
emmanuel-ferdman Jun 9, 2025
c44ae00
Merge pull request #30153 from emmanuel-ferdman/main
rcomer Jun 9, 2025
8263aec
Bump github/codeql-action from 3.28.18 to 3.28.19 in the actions group
dependabot[bot] Jun 9, 2025
427cadc
Apply suggestions from code review
ayshih Jun 11, 2025
c3ed0c9
Update galleries/users_explain/text/fonts.py
jkseppan Jun 11, 2025
153e254
Update galleries/users_explain/text/fonts.py
jkseppan Jun 11, 2025
867cf9f
Update galleries/users_explain/text/fonts.py
jkseppan Jun 11, 2025
2da9307
Update galleries/users_explain/text/fonts.py
jkseppan Jun 11, 2025
b2e6451
Reword paragraph on subsetting
jkseppan Jun 11, 2025
dfab321
Realign grid table
jkseppan Jun 11, 2025
d810e68
Merge pull request #30150 from jkseppan/doc-type1-subsetting
QuLogic Jun 11, 2025
3db5500
Fix RuntimeWarning with NaN input to format_cursor_data
QuLogic Jun 11, 2025
716d046
Merge pull request #30162 from QuLogic/nan-spacing
timhoffm Jun 12, 2025
7be8ccf
Merge remote-tracking branch 'upstream/main' into resample_bug
ayshih Jun 12, 2025
45d4dfd
Merge pull request #30054 from ayshih/resample_bug
dstansby Jun 12, 2025
f6b77d2
Merge pull request #30154 from matplotlib/dependabot/github_actions/a…
dstansby Jun 12, 2025
f4f1fbf
Merge branch 'main' into output-base-name
asmeurer Jun 13, 2025
31d92dc
Prepare to turn matplotlib.style into a plain module.
anntzer Jun 11, 2025
80486e6
Merge pull request #28187 from asmeurer/output-base-name
timhoffm Jun 16, 2025
48e3e94
Bump the actions group with 3 updates
dependabot[bot] Jun 16, 2025
2c1ec43
Merge pull request #30181 from matplotlib/dependabot/github_actions/a…
dstansby Jun 17, 2025
b13e31a
TST: Calculate RMS and diff image in C++
QuLogic Nov 8, 2024
e325459
Merge pull request #29102 from QuLogic/cpp-rms
story645 Jun 19, 2025
33a0d07
DOC: expand polar example (#30180)
jklymak Jun 19, 2025
f5851da
Simplify RendererAgg::draw_markers buffers
QuLogic Jun 20, 2025
b154237
Clean up image files that may be symbolic links to files
ayshih Jun 19, 2025
8c75238
Clean up GIF image files from passing tests
ayshih Jun 19, 2025
5539d12
Merge pull request #30188 from ayshih/image_cleanup
scottshambaugh Jun 20, 2025
bebb263
Merge pull request #30191 from QuLogic/simplify-marker
scottshambaugh Jun 20, 2025
fc99473
DOC: Remove last userdemo example
QuLogic Jun 21, 2025
5a10e4d
Merge pull request #30197 from QuLogic/no-userdemo
timhoffm Jun 21, 2025
bbff84c
Replace facepair_t with std::optional
QuLogic Jun 20, 2025
e77c17f
Use collections.deque to store animation cache data.
anntzer Jun 22, 2025
9340190
Merge pull request #28764 from oscargus/exampletesttyping
QuLogic Jun 23, 2025
6e51bec
Support individual styling of major and minor grid through rcParams (…
konmenel Jun 24, 2025
0dcd06f
Merge pull request #30206 from anntzer/ad
jkseppan Jun 24, 2025
68c67c9
Merge pull request #30163 from anntzer/ms
jkseppan Jun 24, 2025
e3c7a64
Simplify dviFontInfo layout in backend pdf.
anntzer May 19, 2025
fed8c20
Merge pull request #30082 from anntzer/simple-dvifontinfo
QuLogic Jun 25, 2025
c7edce3
Implement Path.__deepcopy__ avoiding infinite recursion
jkseppan Jun 21, 2025
b20cf20
Compare arrays with assert_array_equal
jkseppan Jun 24, 2025
5c7c915
Fix TransformNode.__copy__
jkseppan Jun 21, 2025
4ab1ab5
Update deprecations.rst
ztw33 Jun 25, 2025
dd03655
Update removals.rst
ztw33 Jun 25, 2025
58b6a06
Merge pull request #30212 from ztw33/main
timhoffm Jun 25, 2025
3ea5b63
Fix label_outer in the presence of colorbars.
anntzer May 23, 2025
d05b43d
Merge pull request #30198 from jkseppan/path-deepcopy-via-metaclass
tacaswell Jun 26, 2025
257430e
ci: Enable wheel builds on Python 3.14
QuLogic Jun 20, 2025
b06d1f4
Clean up Qt socket notifier to avoid spurious interrupt handler calls
chrisjbillington Jun 26, 2025
c78c2f4
Refactoring: Removing axis parameter from scales (#29988)
vagnermcj Jun 27, 2025
ac863bc
BUG: Include python-including headers first
DWesl Jun 27, 2025
4b03f0c
Add explicit overloads for pyplot.{show,subplot} (#30202)
ZPyrolink Jun 27, 2025
e36bffb
Add explicit getter / setter overloads for pyplot.{xlim,ylim} (#30199)
ZPyrolink Jun 27, 2025
75c9b0a
Merge pull request #30220 from DWesl/python-h-first
timhoffm Jun 28, 2025
0b2fa3f
BUG: fix future incompatibility with Pillow 13
neutrinoceros Jun 28, 2025
7edd74a
Abstract base class for Normalize (#30178)
trygvrad Jun 28, 2025
99480b9
Fix polar inner patch boundary and spine location for log scale
rcomer Jun 28, 2025
f47f9a2
Fix polar inner patch boundary and spine location for log scale (#30223)
timhoffm Jun 30, 2025
d797ee5
Merge pull request #30098 from anntzer/locb
timhoffm Jun 30, 2025
6ede069
fixup
neutrinoceros Jun 30, 2025
9c184c1
Merge pull request #30221 from neutrinoceros/bug/pillow13-compat
timhoffm Jun 30, 2025
0e430b9
Add explicit signatures for pyplot.{polar,savefig,set_loglevel} (#30200)
ZPyrolink Jun 30, 2025
4c06e71
Bump github/codeql-action from 3.29.0 to 3.29.2 in the actions group
dependabot[bot] Jun 30, 2025
c805967
Merge pull request #30195 from QuLogic/py314
ianthomas23 Jul 1, 2025
413ea8f
Merge pull request #30209 from chrisjbillington/qt-interrupt-cleanup
anntzer Jul 1, 2025
b523581
Copy-edit the docstring of AuxTransformBox.
anntzer Jul 1, 2025
f6ae9e7
Merge pull request #30196 from QuLogic/optional-face
anntzer Jul 1, 2025
1295158
Add explicit `**options: Any` for `add_subplot` method to remove "par…
GameRoMan Jul 1, 2025
384fb6e
Merge pull request #30236 from anntzer/atb
timhoffm Jul 1, 2025
c8361f0
DOC: Recommend to use bare Figure instances for saving to file
timhoffm Jul 2, 2025
d1673ec
Merge pull request #30232 from matplotlib/dependabot/github_actions/a…
jkseppan Jul 2, 2025
919c7b9
adjust logic to allow inherritance
cvanelteren Jul 2, 2025
77f868c
chore: remove redundant words in comment
ianlv Jul 2, 2025
72aa3f7
Merge pull request #30246 from ianlv/main
timhoffm Jul 2, 2025
e22a6e8
Merge pull request #30245 from cvanelteren/allow-inherritance-rc
jklymak Jul 2, 2025
40516e8
Merge pull request #30244 from timhoffm/doc-save-image
jklymak Jul 2, 2025
70d5ad4
Fix FancyArrow rendering for zero-length arrows (#30243)
nrnavaneet Jul 3, 2025
a87684f
Upgrade to Visual Studio 2022 in appveyor.yml
jkseppan Jul 1, 2025
2899656
Merge pull request #30239 from jkseppan/vcvars
QuLogic Jul 3, 2025
d231a25
Don't expose private styles in style.available
QuLogic Jul 1, 2025
73d0317
Merge pull request #30237 from GameRoMan/patch-1
jkseppan Jul 4, 2025
6a01311
Time out in _get_executable_info
jkseppan Jul 3, 2025
ede1ebb
Merge pull request #30256 from jkseppan/timeout-get-executable-info
anntzer Jul 4, 2025
bf96be4
Fix linting in test notebooks
QuLogic Jul 4, 2025
ca3d239
Clean up unused ruff config
QuLogic Jul 4, 2025
18f93ee
Clean up mypy settings
QuLogic Jul 4, 2025
f4398bf
Clean up some simple linting exceptions
QuLogic Jul 4, 2025
7572823
Check that stem input is 1D
QuLogic Jul 1, 2025
e78735b
Tweak docstrings of get_window_extent/get_tightbbox.
anntzer Jul 4, 2025
cfc366b
Merge pull request #30262 from anntzer/gwegtb
timhoffm Jul 5, 2025
faa3670
Merge pull request #30258 from QuLogic/ruff-update
timhoffm Jul 5, 2025
9c3f73b
DOC: fix artist see also sections
rcomer Jul 5, 2025
90db4c1
Merge pull request #30266 from rcomer/artist-seealso
jklymak Jul 6, 2025
947590d
Merge pull request #30233 from QuLogic/stem-1d
dstansby Jul 6, 2025
db6cf15
Fix figure legend when drawing stackplots
dstansby Jun 18, 2025
b370e30
Add smoke test
dstansby Jul 6, 2025
99b4ee3
Merge pull request #30186 from dstansby/fig-legend-error
timhoffm Jul 7, 2025
b6777b1
Merge pull request #30235 from QuLogic/private-style
timhoffm Jul 7, 2025
f3e2966
Create events type and update plt.connect and mpl_connect
ZPyrolink Jul 7, 2025
f31ba35
Use old stride_windows implementation on 32-bit builds
QuLogic Aug 22, 2022
4c345b4
Merge pull request #29115 from QuLogic/old-strides
QuLogic Jul 7, 2025
3208831
Reduce pause time in interactive tests
dstansby Jul 8, 2025
3d7b644
Create connect overloads on pyplot
ZPyrolink Jul 8, 2025
d2adb8d
Remove unnecessary mpl_connect overload and sort imports
ZPyrolink Jul 8, 2025
ac2a909
Merge pull request #30271 from dstansby/speedup-interactive-timer-tests
jkseppan Jul 9, 2025
9bbe32b
fix(config): Correct invalid value for svg.fonttype in matplotlibrc
sbwiecko Jul 9, 2025
15f2f37
Merge pull request #30279 from sbwiecko/matplotlibrc-config-svg
tacaswell Jul 9, 2025
86983e4
Log a warning if selected font weight differs from requested
Nov 6, 2019
4284a0b
Merge pull request #30275 from ZPyrolink/fix/connect_literal
QuLogic Jul 10, 2025
7432ef4
Fix several minor typos
QuLogic Jun 23, 2025
1ca2136
changed the FAQ link to point to the correct path
Jul 10, 2025
93a421e
Merge pull request #30281 from QuLogic/typo
timhoffm Jul 10, 2025
69f92e9
Fixed the overdeletion of source images for failing tests
ayshih Jul 10, 2025
d7c5c67
Fix whitespace in _axes.py error message
brchristian Jul 10, 2025
c6798ce
changed second instance of a wrong link
Jul 11, 2025
4714831
Merge pull request #30286 from brchristian/patch-1
QuLogic Jul 11, 2025
e7a09ac
Merge pull request #30283 from IdiotCoffee/main
QuLogic Jul 11, 2025
d2d969e
DOC: Fix build with pybind11 3
QuLogic Jul 11, 2025
30f4ece
Merge pull request #30289 from QuLogic/fix-pybind-doc
story645 Jul 11, 2025
b02ed41
FIX: Ensure Locators on RadialAxis are always correctly wrapped
timhoffm Jun 13, 2025
1663e9a
Merge pull request #30174 from timhoffm/fix-radialaxis
timhoffm Jul 12, 2025
0555206
Add Literal-based LogLevel type alias and use it in set_loglevel for …
nrnavaneet Jul 12, 2025
347dceb
Only error if redirect is different
dstansby Jul 14, 2025
ef45c7b
Note where redirect is trying to go
dstansby Jul 14, 2025
63756df
Merge pull request #30309 from dstansby/improve-redirecter
jklymak Jul 14, 2025
7d11302
Bump the actions group with 2 updates
dependabot[bot] Jul 15, 2025
be5e860
Merge pull request #30311 from matplotlib/dependabot/github_actions/a…
dstansby Jul 15, 2025
6019c46
Replace deprecated imports
dstansby Jul 15, 2025
d2050cb
Merge pull request #30272 from QuLogic/font-weight-warning
dstansby Jul 15, 2025
eef0334
Fix link to pango
dstansby Jul 15, 2025
d4b7bc6
Fix: correct typing overloads for ``Figure.subfigures``
MarcoGorelli Jul 15, 2025
d40a024
Merge pull request #30315 from dstansby/fix-pango-link
WeatherGod Jul 15, 2025
b77ba11
fix broken configobj link
jocelynvj Jul 15, 2025
e1c9492
Merge pull request #30312 from dstansby/deprecated-imports
tacaswell Jul 15, 2025
2e65332
[TYP] Add more literals to MarkerType (#30261)
ZPyrolink Jul 15, 2025
b766c96
Merge pull request #30317 from jocelynvj/fix_configobj_link
QuLogic Jul 15, 2025
d0eed0e
Added None to get_legend() type annotation
nrnavaneet Jul 16, 2025
b520f86
Added an edge case test
nrnavaneet Jul 16, 2025
24e9946
Test changes
nrnavaneet Jul 16, 2025
3070ac8
Removed the test
nrnavaneet Jul 17, 2025
2b75c9e
Merge pull request #30321 from nrnavaneet/feature-branch
timhoffm Jul 17, 2025
f5b6029
Fix mlab fallback for 32-bit systems
QuLogic Jul 8, 2025
3af455f
CI: auto-fix via zizmor
tacaswell Jul 18, 2025
5a9f7cb
TST: Add tests for saving a figure after removing a widget axes
tacaswell Mar 29, 2023
5c83d7b
FIX: callbacks do not raise after removal of widget axes
tacaswell Jul 18, 2025
1503ac4
Merge pull request #25573 from tacaswell/fix_removed_widget_axes
timhoffm Jul 18, 2025
ee1c70b
FIX: cast Patch linewidth to float for dash scaling
rcomer Jul 18, 2025
efacc7d
Merge pull request #30333 from rcomer/conpatch-lw
rcomer Jul 18, 2025
192b7c2
Include close matches in error message when key not found (#30001)
dstansby Jul 19, 2025
53af231
Merge pull request #30302 from nrnavaneet/fix/literal-typing-setloglevel
dstansby Jul 20, 2025
59bc11f
CI: rename linking workflow
tacaswell Jul 21, 2025
ef3faf2
FIX Update Axes limits from Axes.add_collection(... autolim=True)
timhoffm Jul 17, 2025
832c939
Bump the actions group with 2 updates
dependabot[bot] Jul 21, 2025
7a0964c
Merge pull request #30340 from matplotlib/dependabot/github_actions/a…
tacaswell Jul 22, 2025
fec45c6
MNT: Prefer capitalized logging levels (#30339)
timhoffm Jul 22, 2025
95db12f
[fix] Spine.set_bounds() does not take parameter **None** as expected…
leakyH Jul 22, 2025
ea350fa
Fix broken/deprecated documentation links in MEPs and testing guides …
nrnavaneet Jul 23, 2025
ff5c842
qt: Use better devicePixelRatio event to refresh scaling
QuLogic Jul 23, 2025
f4d9f6c
Support fractional HiDPI in GTK4 backend
QuLogic Jul 23, 2025
8bd2e75
MNT: Fix isort line length setting
QuLogic Jul 24, 2025
b0ad3c1
DOC: Fix deprecations in GTK4 embedding examples
QuLogic Jul 24, 2025
bff64cc
Merge pull request #30314 from MarcoGorelli/fix-overloads
QuLogic Jul 24, 2025
0e2cc10
BLD: Enable wheels on Windows-on-ARM
QuLogic Jul 12, 2024
8e09edf
Small cleanups.
anntzer May 6, 2025
315c4fb
Keep default minor log ticks if there's 1 major & 1 minor tick.
anntzer Mar 11, 2025
8355ee7
Axes can't set navigate_mode.
anntzer Sep 13, 2024
be5fd62
Merge pull request #30346 from QuLogic/fix-isort
tacaswell Jul 24, 2025
3444f0f
Merge pull request #30344 from QuLogic/gtk4-fractional
tacaswell Jul 24, 2025
55f7b10
Merge pull request #30327 from timhoffm/fix-autolim
tacaswell Jul 24, 2025
6d35848
Merge pull request #28554 from QuLogic/winarm
tacaswell Jul 24, 2025
93ed6de
Merge pull request #30345 from QuLogic/qt-better-hidpi
QuLogic Jul 24, 2025
b25ff80
Merge pull request #30332 from tacaswell/harden_gha
ksunden Jul 24, 2025
b2e8b93
Merge pull request #30347 from anntzer/cleanup
QuLogic Jul 25, 2025
2b9f263
Trigger events via standard callbacks in widget testing.
anntzer May 1, 2025
011d12f
Merge pull request #30349 from anntzer/no-axes-set_navigate_mode
QuLogic Jul 26, 2025
5c0d055
Cross-ref the two-scales and secondary-axes examples. (#30366)
anntzer Jul 29, 2025
9470370
Switch get_grid_info to take a single Bbox as parameter.
anntzer Apr 10, 2024
4f070ac
ENH: Allow tuple for borderpad in AnchoredOffsetbox (#30359)
Aaratrika-Shelly Jul 30, 2025
9912534
TST: Make determinism test plots look less pathological
QuLogic Jul 30, 2025
f97cff0
BLD: ignore more meson files
tacaswell Jul 30, 2025
1495015
TST: only retry flaky tests on CI
tacaswell Jul 30, 2025
126507f
Show subprocess stdout and stderr on pytest failure
thopkins32 Jul 30, 2025
1e20a86
Merge pull request #30373 from tacaswell/mnt/test_qol_improvements
timhoffm Jul 30, 2025
9573103
Merge pull request #29890 from thomashopkins32/capture-subprocess-tes…
timhoffm Jul 30, 2025
4a60fac
Register 'avif' format when available in Pillow (#30363)
AndrGutierrez Jul 30, 2025
0ab6890
ENH: Type the possible str legend locs as Literals
timhoffm Jan 12, 2025
2888c0b
Merge pull request #29993 from anntzer/undoevent
QuLogic Jul 31, 2025
e99f7f8
Merge pull request #30368 from anntzer/ggib
QuLogic Jul 31, 2025
a0bc7e9
Support passing xticks/yticks when constructing secondary_axis.
anntzer Jul 29, 2025
1c3c32f
Merge pull request #30367 from anntzer/st
QuLogic Jul 31, 2025
596627a
Fix highlighting of install docs.
anntzer Jul 31, 2025
c5bc302
Shorten setup of axes in simple_axis_pad demo.
anntzer Jul 31, 2025
1b47608
Merge pull request #30376 from anntzer/sap
timhoffm Jul 31, 2025
ad72134
Merge pull request #30375 from anntzer/hi
timhoffm Jul 31, 2025
784dcb9
Merge pull request #29465 from timhoffm/type-legend-loc
ksunden Jul 31, 2025
b19a68a
Merge pull request #30273 from QuLogic/mlab32
QuLogic Jul 31, 2025
fdcc86a
Merge pull request #30348 from anntzer/minorlog
QuLogic Aug 1, 2025
6df7e34
Merge pull request #30284 from ayshih/image_cleanup_fixed
tacaswell Aug 1, 2025
1cd5c7b
Merge pull request #29716 from timhoffm/broken_barh_align
tacaswell Aug 1, 2025
b165927
Merge pull request #30374 from QuLogic/better-determinism
dstansby Aug 1, 2025
5144212
ENH: ax.add_collection(..., autolim=True) updates view limits
timhoffm Apr 22, 2025
dfc888c
Merge pull request #29958 from timhoffm/add_collection_viewlims
QuLogic Aug 2, 2025
242ae7d
DOC: Simplify Line, Poly and RegularPoly example
timhoffm Aug 3, 2025
a797f94
Merge pull request #30383 from timhoffm/doc-collection-example
story645 Aug 3, 2025
42025cc
Merge branch 'pgf-documentclass-rcparam' of github.com:MiniX16/matplo…
MiniX16 Aug 4, 2025
7ba1240
refactor: align code with style guide
MiniX16 Aug 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ skip_commits:

clone_depth: 50

image: Visual Studio 2019
image: Visual Studio 2022

environment:

Expand Down
73 changes: 44 additions & 29 deletions .github/workflows/cibuildwheel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,16 @@ permissions:
jobs:
build_sdist:
if: >-
github.event_name == 'push' ||
github.event_name == 'pull_request' && (
(
github.event.action == 'labeled' &&
github.event.label.name == 'CI: Run cibuildwheel'
) ||
contains(github.event.pull_request.labels.*.name,
'CI: Run cibuildwheel')
github.repository == 'matplotlib/matplotlib' && (
github.event_name == 'push' ||
github.event_name == 'pull_request' && (
(
github.event.action == 'labeled' &&
github.event.label.name == 'CI: Run cibuildwheel'
) ||
contains(github.event.pull_request.labels.*.name,
'CI: Run cibuildwheel')
)
)
name: Build sdist
runs-on: ubuntu-latest
Expand Down Expand Up @@ -78,14 +80,16 @@ jobs:

build_wheels:
if: >-
github.event_name == 'push' ||
github.event_name == 'pull_request' && (
(
github.event.action == 'labeled' &&
github.event.label.name == 'CI: Run cibuildwheel'
) ||
contains(github.event.pull_request.labels.*.name,
'CI: Run cibuildwheel')
github.repository == 'matplotlib/matplotlib' && (
github.event_name == 'push' ||
github.event_name == 'pull_request' && (
(
github.event.action == 'labeled' &&
github.event.label.name == 'CI: Run cibuildwheel'
) ||
contains(github.event.pull_request.labels.*.name,
'CI: Run cibuildwheel')
)
)
needs: build_sdist
name: Build wheels on ${{ matrix.os }} for ${{ matrix.cibw_archs }}
Expand Down Expand Up @@ -123,7 +127,9 @@ jobs:
- os: ubuntu-24.04-arm
cibw_archs: "aarch64"
- os: windows-latest
cibw_archs: "auto64"
cibw_archs: "AMD64"
- os: windows-11-arm
cibw_archs: "ARM64"
- os: macos-13
cibw_archs: "x86_64"
- os: macos-14
Expand All @@ -136,45 +142,54 @@ jobs:
name: cibw-sdist
path: dist/

- name: Build wheels for CPython 3.14
uses: pypa/cibuildwheel@95d2f3a92fbf80abe066b09418bbf128a8923df2 # v3.0.1
with:
package-dir: dist/${{ needs.build_sdist.outputs.SDIST_NAME }}
env:
CIBW_BUILD: "cp314-* cp314t-*"
CIBW_ENABLE: "cpython-freethreading cpython-prerelease"
CIBW_ARCHS: ${{ matrix.cibw_archs }}
CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_28
CIBW_BEFORE_TEST: >-
python -m pip install
--index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple
--upgrade --pre --only-binary=:all: contourpy numpy pillow

- name: Build wheels for CPython 3.13
uses: pypa/cibuildwheel@faf86a6ed7efa889faf6996aa23820831055001a # v2.23.3
uses: pypa/cibuildwheel@95d2f3a92fbf80abe066b09418bbf128a8923df2 # v3.0.1
with:
package-dir: dist/${{ needs.build_sdist.outputs.SDIST_NAME }}
env:
CIBW_BUILD: "cp313-* cp313t-*"
CIBW_ENABLE: cpython-freethreading
# No free-threading wheels available for aarch64 on Pillow.
CIBW_TEST_SKIP: "cp313t-manylinux_aarch64"
CIBW_ARCHS: ${{ matrix.cibw_archs }}

- name: Build wheels for CPython 3.12
uses: pypa/cibuildwheel@faf86a6ed7efa889faf6996aa23820831055001a # v2.23.3
uses: pypa/cibuildwheel@95d2f3a92fbf80abe066b09418bbf128a8923df2 # v3.0.1
with:
package-dir: dist/${{ needs.build_sdist.outputs.SDIST_NAME }}
env:
CIBW_BUILD: "cp312-*"
CIBW_ARCHS: ${{ matrix.cibw_archs }}

- name: Build wheels for CPython 3.11
uses: pypa/cibuildwheel@faf86a6ed7efa889faf6996aa23820831055001a # v2.23.3
uses: pypa/cibuildwheel@95d2f3a92fbf80abe066b09418bbf128a8923df2 # v3.0.1
with:
package-dir: dist/${{ needs.build_sdist.outputs.SDIST_NAME }}
env:
CIBW_BUILD: "cp311-*"
CIBW_ARCHS: ${{ matrix.cibw_archs }}


- name: Build wheels for PyPy
uses: pypa/cibuildwheel@faf86a6ed7efa889faf6996aa23820831055001a # v2.23.3
uses: pypa/cibuildwheel@95d2f3a92fbf80abe066b09418bbf128a8923df2 # v3.0.1
with:
package-dir: dist/${{ needs.build_sdist.outputs.SDIST_NAME }}
env:
CIBW_BUILD: "pp311-*"
CIBW_ARCHS: ${{ matrix.cibw_archs }}
CIBW_ENABLE: pypy
# No wheels available for Pillow with pp311 yet.
CIBW_TEST_SKIP: "pp311*"
if: matrix.cibw_archs != 'aarch64' && matrix.os != 'windows-latest'
if: matrix.cibw_archs != 'aarch64' && matrix.os != 'windows-latest' && matrix.os != 'windows-11-arm'

- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
Expand All @@ -183,7 +198,7 @@ jobs:
if-no-files-found: error

publish:
if: github.event_name == 'push' && github.ref_type == 'tag'
if: github.repository == 'matplotlib/matplotlib' && github.event_name == 'push' && github.ref_type == 'tag'
name: Upload release to PyPI
needs: [build_sdist, build_wheels]
runs-on: ubuntu-latest
Expand All @@ -204,7 +219,7 @@ jobs:
run: ls dist

- name: Generate artifact attestation for sdist and wheel
uses: actions/attest-build-provenance@db473fddc028af60658334401dc6fa3ffd8669fd # v2.3.0
uses: actions/attest-build-provenance@e8998f949152b193b063cb0ec769d69d929409be # v2.4.0
with:
subject-path: dist/matplotlib-*

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/circleci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
steps:
- name: GitHub Action step
uses:
scientific-python/circleci-artifacts-redirector-action@4e13a10d89177f4bfc8007a7064bdbeda848d8d1 # v1.0.0
scientific-python/circleci-artifacts-redirector-action@7eafdb60666f57706a5525a2f5eb76224dc8779b # v1.1.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
api-token: ${{ secrets.CIRCLECI_TOKEN }}
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ on:

jobs:
analyze:
if: github.repository == 'matplotlib/matplotlib'
name: Analyze
runs-on: ubuntu-latest
permissions:
Expand All @@ -31,7 +32,7 @@ jobs:
persist-credentials: false

- name: Initialize CodeQL
uses: github/codeql-action/init@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
uses: github/codeql-action/init@d6bbdef45e766d081b84a2def353b0055f728d3e # v3.29.3
with:
languages: ${{ matrix.language }}

Expand All @@ -42,4 +43,4 @@ jobs:
pip install --user -v .

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
uses: github/codeql-action/analyze@d6bbdef45e766d081b84a2def353b0055f728d3e # v3.29.3
1 change: 1 addition & 0 deletions .github/workflows/conflictcheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ on:

jobs:
main:
if: github.repository == 'matplotlib/matplotlib'
runs-on: ubuntu-latest
permissions:
pull-requests: write
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cygwin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ jobs:
fetch-depth: 0
persist-credentials: false

- uses: cygwin/cygwin-install-action@f61179d72284ceddc397ed07ddb444d82bf9e559 # v5
- uses: cygwin/cygwin-install-action@f2009323764960f80959895c7bc3bb30210afe4d # v6
with:
packages: >-
ccache gcc-g++ gdb git graphviz libcairo-devel libffi-devel
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
persist-credentials: false
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: "3.x"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pr_welcome.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
permissions:
pull-requests: write
steps:
- uses: actions/first-interaction@34f15e814fe48ac9312ccf29db4e74fa767cbab7 # v1.3.0
- uses: actions/first-interaction@2d4393e6bc0e2efb2e48fba7e06819c3bf61ffc9 # v2.0.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
pr-message: >+
Expand Down
54 changes: 27 additions & 27 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,10 @@ jobs:
python-version: '3.12'
# https://github.com/matplotlib/matplotlib/issues/29844
pygobject-ver: '<3.52.0'
- os: ubuntu-22.04
- name-suffix: "(Extra TeX packages)"
os: ubuntu-22.04
python-version: '3.13'
extra-packages: 'texlive-fonts-extra texlive-lang-cyrillic'
# https://github.com/matplotlib/matplotlib/issues/29844
pygobject-ver: '<3.52.0'
- name-suffix: "Free-threaded"
Expand Down Expand Up @@ -142,7 +144,8 @@ jobs:
texlive-latex-recommended \
texlive-luatex \
texlive-pictures \
texlive-xetex
texlive-xetex \
${{ matrix.extra-packages }}
if [[ "${{ matrix.name-suffix }}" != '(Minimum Versions)' ]]; then
sudo apt-get install -yy --no-install-recommends ffmpeg poppler-utils
fi
Expand Down Expand Up @@ -341,32 +344,29 @@ jobs:
- name: Cleanup non-failed image files
if: failure()
run: |
function remove_files() {
local extension=$1
find ./result_images -type f -name "*-expected*.$extension" | while read file; do
if [[ $file == *"-expected_pdf"* ]]; then
base=${file%-expected_pdf.$extension}_pdf
elif [[ $file == *"-expected_eps"* ]]; then
base=${file%-expected_eps.$extension}_eps
elif [[ $file == *"-expected_svg"* ]]; then
base=${file%-expected_svg.$extension}_svg
else
base=${file%-expected.$extension}
fi
if [[ ! -e "${base}-failed-diff.$extension" ]]; then
if [[ -e "$file" ]]; then
rm "$file"
echo "Removed $file"
fi
if [[ -e "${base}.$extension" ]]; then
rm "${base}.$extension"
echo " Removed ${base}.$extension"
fi
fi
find ./result_images -name "*-expected*.png" | while read file; do
if [[ $file == *-expected_???.png ]]; then
extension=${file: -7:3}
base=${file%*-expected_$extension.png}_$extension
else
extension="png"
base=${file%-expected.png}
fi
if [[ ! -e ${base}-failed-diff.png ]]; then
indent=""
list=($file $base.png)
if [[ $extension != "png" ]]; then
list+=(${base%_$extension}-expected.$extension ${base%_$extension}.$extension)
fi
for to_remove in "${list[@]}"; do
if [[ -e $to_remove ]]; then
rm $to_remove
echo "${indent}Removed $to_remove"
fi
indent+=" "
done
}

remove_files "png"; remove_files "svg"; remove_files "pdf"; remove_files "eps";
fi
done

if [ "$(find ./result_images -mindepth 1 -type d)" ]; then
find ./result_images/* -type d -empty -delete
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ pip-wheel-metadata/*
.tox
# build subproject files
subprojects/*/
subprojects/.*
!subprojects/packagefiles/

# OS generated files #
Expand Down
2 changes: 1 addition & 1 deletion ci/schemas/conda-environment.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"title": "conda environment file",
"description": "Support for conda's enviroment.yml files (e.g. `conda env export > environment.yml`)",
"description": "Support for conda's environment.yml files (e.g. `conda env export > environment.yml`)",
"id": "https://raw.githubusercontent.com/Microsoft/vscode-python/main/schemas/conda-environment.json",
"$schema": "http://json-schema.org/draft-04/schema#",
"definitions": {
Expand Down
15 changes: 15 additions & 0 deletions doc/_embedded_plots/grouped_bar.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import matplotlib.pyplot as plt

categories = ['A', 'B']
data0 = [1.0, 3.0]
data1 = [1.4, 3.4]
data2 = [1.8, 3.8]

fig, ax = plt.subplots(figsize=(4, 2.2))
ax.grouped_bar(
[data0, data1, data2],
tick_labels=categories,
labels=['dataset 0', 'dataset 1', 'dataset 2'],
colors=['#1f77b4', '#58a1cf', '#abd0e6'],
)
ax.legend()
1 change: 1 addition & 0 deletions doc/api/axes_api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ Basic
Axes.bar
Axes.barh
Axes.bar_label
Axes.grouped_bar

Axes.stem
Axes.eventplot
Expand Down
1 change: 1 addition & 0 deletions doc/api/bezier_api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@
.. automodule:: matplotlib.bezier
:members:
:undoc-members:
:special-members: __call__
:show-inheritance:
1 change: 1 addition & 0 deletions doc/api/colors_api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ Color norms
:toctree: _as_gen/
:template: autosummary.rst

Norm
Normalize
NoNorm
AsinhNorm
Expand Down
8 changes: 8 additions & 0 deletions doc/api/next_api_changes/behavior/29958-TH.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
``Axes.add_collection(..., autolim=True)`` updates view limits
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

``Axes.add_collection(..., autolim=True)`` has so far only updated the data limits.
Users needed to additionally call `.Axes.autoscale_view` to update the view limits.
View limits are now updated as well if ``autolim=True``, using a lazy internal
update mechanism, so that the costs only apply once also if you add multiple
collections.
2 changes: 2 additions & 0 deletions doc/api/next_api_changes/behavior/30272-ES.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
``font_manager.findfont`` logs if selected font weight does not match requested
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 changes: 4 additions & 0 deletions doc/api/next_api_changes/deprecations/29993-AL.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
``testing.widgets.mock_event`` and ``testing.widgets.do_event``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
... are deprecated. Directly construct Event objects (typically `.MouseEvent`
or `.KeyEvent`) and pass them to ``canvas.callbacks.process()`` instead.
12 changes: 12 additions & 0 deletions doc/api/next_api_changes/deprecations/30044-AL.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
``FT2Image``
~~~~~~~~~~~~
... is deprecated. Use 2D uint8 ndarrays instead. In particular:

- The ``FT2Image`` constructor took ``width, height`` as separate parameters
but the ndarray constructor takes ``(height, width)`` as single tuple
parameter.
- `.FT2Font.draw_glyph_to_bitmap` now (also) takes 2D uint8 arrays as input.
- ``FT2Image.draw_rect_filled`` should be replaced by directly setting pixel
values to black.
- The ``image`` attribute of the object returned by ``MathTextParser("agg").parse``
is now a 2D uint8 array.
4 changes: 4 additions & 0 deletions doc/api/next_api_changes/deprecations/30070-OG.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
``BezierSegment.point_at_t``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

... is deprecated. Instead, it is possible to call the BezierSegment with an argument.
4 changes: 4 additions & 0 deletions doc/api/next_api_changes/deprecations/30088-AL.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
*fontfile* parameter of ``PdfFile.createType1Descriptor``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This parameter is deprecated; all relevant pieces of information are now
directly extracted from the *t1font* argument.
9 changes: 9 additions & 0 deletions doc/api/next_api_changes/deprecations/30163-AL.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
``matplotlib.style.core``
~~~~~~~~~~~~~~~~~~~~~~~~~
The ``matplotlib.style.core`` module is deprecated. All APIs intended for
public use are now available in `matplotlib.style` directly (including
``USER_LIBRARY_PATHS``, which was previously not reexported).

The following APIs of ``matplotlib.style.core`` have been deprecated with no
replacement: ``BASE_LIBRARY_PATH``, ``STYLE_EXTENSION``, ``STYLE_BLACKLIST``,
``update_user_library``, ``read_style_directory``, ``update_nested_dict``.
Loading
Loading