Ownership is measured by how many commits each author made to each file in the current tree. It highlights bus-factor risk (files only one person has ever touched) and where knowledge is concentrated. The bus factor is the smallest number of people who are, between them, primary owner of more than half of the files.
Files only one author has ever changed. The more a file has changed, the more knowledge is at risk if that person leaves.
| File | Sole owner | Commits |
|---|---|---|
| doc/release/next_whats_new/new_barcontainer_properties.rst | Roberto Moura | 7 |
| lib/matplotlib/tests/baseline_images/test_axes/symlog2.pdf | Michael Droettboom | 7 |
| subprojects/freetype2.wrap | Elliott Sales de Andrade | 5 |
| lib/matplotlib/texmanager.pyi | Kyle Sunden | 5 |
| lib/matplotlib/tests/baseline_images/test_axes/polycollection_joinstyle.png | Michael Droettboom | 5 |
| lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_04.pdf | Michael Droettboom | 5 |
| lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_13.pdf | Michael Droettboom | 5 |
| lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_04.pdf | Michael Droettboom | 5 |
| lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_10.pdf | Michael Droettboom | 5 |
| lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_13.pdf | Michael Droettboom | 5 |
| File | Sole owner | Commits |
|---|---|---|
| doc/release/next_whats_new/new_barcontainer_properties.rst | Roberto Moura | 7 |
| lib/matplotlib/tests/baseline_images/test_axes/symlog2.pdf | Michael Droettboom | 7 |
| subprojects/freetype2.wrap | Elliott Sales de Andrade | 5 |
| lib/matplotlib/texmanager.pyi | Kyle Sunden | 5 |
| lib/matplotlib/tests/baseline_images/test_axes/polycollection_joinstyle.png | Michael Droettboom | 5 |
| lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_04.pdf | Michael Droettboom | 5 |
| lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_13.pdf | Michael Droettboom | 5 |
| lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_04.pdf | Michael Droettboom | 5 |
| lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_10.pdf | Michael Droettboom | 5 |
| lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_13.pdf | Michael Droettboom | 5 |
| doc/api/prev_api_changes/api_changes_3.6.0.rst | Elliott Sales de Andrade | 4 |
| doc/api/prev_api_changes/api_changes_3.4.0/development.rst | Elliott Sales de Andrade | 4 |
| doc/api/prev_api_changes/api_changes_3.4.0.rst | Elliott Sales de Andrade | 4 |
| lib/matplotlib/backends/web_backend/css/mpl.css | Elliott Sales de Andrade | 4 |
| doc/api/next_api_changes.rst | Tim Hoffmann | 4 |
| lib/matplotlib/tests/test_backends_rendering.py | Albert Y. Shih | 4 |
| .github/workflows/autoclose_comment.yml | Melissa Weber Mendonça | 4 |
| lib/matplotlib/projections/geo.pyi | Kyle Sunden | 4 |
| lib/matplotlib/tests/baseline_images/test_axes/polycollection_joinstyle.pdf | Michael Droettboom | 4 |
| lib/matplotlib/tests/baseline_images/test_axes/arc_ellipse.pdf | Michael Droettboom | 4 |
| lib/matplotlib/testing/decorators.pyi | Elliott Sales de Andrade | 3 |
| lib/matplotlib/backends/web_backend/.eslintrc.js | Elliott Sales de Andrade | 3 |
| galleries/examples/ticks/date.py | Tim Hoffmann | 3 |
| galleries/tutorials/coding_shortcuts.py | Tim Hoffmann | 3 |
| .github/workflows/windows-tests.yml | Greg Lucas | 3 |
| galleries/examples/lines_bars_and_markers/pareto_chart.py | Sebastian Torres | 3 |
| lib/matplotlib/_style_helpers.py | Ruth Comer | 3 |
| tools/check_typehints.py | Kyle Sunden | 3 |
| lib/matplotlib/_color_data.pyi | Kyle Sunden | 3 |
| galleries/examples/ticks/multilevel_ticks.py | Jody Klymak | 3 |
| galleries/users_explain/figure/index.rst | Jody Klymak | 3 |
| galleries/users_explain/artists/index.rst | Jody Klymak | 3 |
| galleries/examples/showcase/pan_zoom_overlap.py | Raphael Quast | 3 |
| subprojects/sheenbidi.wrap | Elliott Sales de Andrade | 2 |
| lib/matplotlib/tests/baseline_images/test_backend_pdf/ttc_type3.pdf | Elliott Sales de Andrade | 2 |
| lib/matplotlib/tests/baseline_images/test_backend_ps/ttc_type3.eps | Elliott Sales de Andrade | 2 |
| lib/matplotlib/tests/baseline_images/test_backend_ps/ttc_type42.eps | Elliott Sales de Andrade | 2 |
| lib/matplotlib/tests/baseline_images/test_ft2font/last_resort.pdf | Elliott Sales de Andrade | 2 |
| lib/matplotlib/tests/baseline_images/test_ft2font/last_resort.png | Elliott Sales de Andrade | 2 |
| lib/matplotlib/tests/baseline_images/test_ft2font/last_resort.svg | Elliott Sales de Andrade | 2 |
| lib/matplotlib/tests/baseline_images/test_legend/hatching.png | Elliott Sales de Andrade | 2 |
| lib/matplotlib/tests/baseline_images/test_offsetbox/anchoredtext_align.png | Elliott Sales de Andrade | 2 |
| lib/matplotlib/tests/baseline_images/test_patheffects/stroked_text.png | Elliott Sales de Andrade | 2 |
| lib/matplotlib/tests/baseline_images/test_usetex/rotation.png | Elliott Sales de Andrade | 2 |
| lib/matplotlib/tests/baseline_images/test_usetex/rotation.svg | Elliott Sales de Andrade | 2 |
| lib/mpl_toolkits/axes_grid1/tests/baseline_images/test_axes_grid1/anchored_direction_arrows.png | Elliott Sales de Andrade | 2 |
| lib/mpl_toolkits/axes_grid1/tests/baseline_images/test_axes_grid1/anchored_direction_arrows_many_args.png | Elliott Sales de Andrade | 2 |
| lib/mpl_toolkits/axes_grid1/tests/baseline_images/test_axes_grid1/image_grid_single_bottom_label_mode_1.png | Elliott Sales de Andrade | 2 |
| lib/mpl_toolkits/axes_grid1/tests/baseline_images/test_axes_grid1/inverted_zoomed_axes.png | Elliott Sales de Andrade | 2 |
| lib/mpl_toolkits/axes_grid1/tests/baseline_images/test_axes_grid1/twin_axes_empty_and_removed.png | Elliott Sales de Andrade | 2 |
| lib/mpl_toolkits/axes_grid1/tests/baseline_images/test_axes_grid1/zoomed_axes.png | Elliott Sales de Andrade | 2 |
| lib/mpl_toolkits/axisartist/tests/baseline_images/test_axis_artist/axis_artist.png | Elliott Sales de Andrade | 2 |
| lib/mpl_toolkits/axisartist/tests/baseline_images/test_axis_artist/axis_artist_labelbase.png | Elliott Sales de Andrade | 2 |
| lib/mpl_toolkits/axisartist/tests/baseline_images/test_axis_artist/axis_artist_ticklabels.png | Elliott Sales de Andrade | 2 |
| lib/mpl_toolkits/axisartist/tests/baseline_images/test_axislines/Subplot.png | Elliott Sales de Andrade | 2 |
| lib/mpl_toolkits/axisartist/tests/baseline_images/test_axislines/SubplotZero.png | Elliott Sales de Andrade | 2 |
| lib/mpl_toolkits/axisartist/tests/baseline_images/test_floating_axes/curvelinear3.png | Elliott Sales de Andrade | 2 |
| lib/mpl_toolkits/axisartist/tests/baseline_images/test_floating_axes/curvelinear4.png | Elliott Sales de Andrade | 2 |
| lib/mpl_toolkits/axisartist/tests/baseline_images/test_grid_helper_curvelinear/axis_direction.png | Elliott Sales de Andrade | 2 |
| lib/mpl_toolkits/axisartist/tests/baseline_images/test_grid_helper_curvelinear/custom_transform.png | Elliott Sales de Andrade | 2 |
| lib/mpl_toolkits/mplot3d/tests/baseline_images/test_axes3d/proj3d_axes_cube.png | Elliott Sales de Andrade | 2 |
| lib/mpl_toolkits/mplot3d/tests/baseline_images/test_axes3d/proj3d_axes_cube_ortho.png | Elliott Sales de Andrade | 2 |
| lib/mpl_toolkits/axes_grid1/tests/conftest.py | Elliott Sales de Andrade | 2 |
| lib/mpl_toolkits/axisartist/tests/conftest.py | Elliott Sales de Andrade | 2 |
| lib/mpl_toolkits/mplot3d/tests/conftest.py | Elliott Sales de Andrade | 2 |
| meson.options | Elliott Sales de Andrade | 2 |
| ci/schemas/conda-environment.json | Elliott Sales de Andrade | 2 |
| lib/mpl_toolkits/axisartist/meson.build | Elliott Sales de Andrade | 2 |
| doc/_static/zenodo_cache/5706396.svg | Elliott Sales de Andrade | 2 |
| doc/_static/zenodo_cache/5773480.svg | Elliott Sales de Andrade | 2 |
| doc/_static/zenodo_cache/5194481.svg | Elliott Sales de Andrade | 2 |
| galleries/examples/text_labels_and_annotations/gallery_order.txt | Tim Hoffmann | 2 |
| galleries/plot_types/arrays/gallery_order.txt | Tim Hoffmann | 2 |
| galleries/examples/subplots_axes_and_figures/multiple_yaxis_with_spines.py | Tim Hoffmann | 2 |
| galleries/examples/ticks/engineering_formatter.py | Tim Hoffmann | 2 |
| galleries/examples/statistics/cohere.py | Tim Hoffmann | 2 |
| galleries/examples/statistics/csd_demo.py | Tim Hoffmann | 2 |
| galleries/examples/statistics/xcorr_acorr_demo.py | Tim Hoffmann | 2 |
| lib/matplotlib/tests/baseline_images/test_patches/all_quadrants_arcs.svg | Thomas A Caswell | 2 |
| lib/matplotlib/tests/baseline_images/test_patches/multi_color_hatch.svg | Thomas A Caswell | 2 |
| lib/matplotlib/tests/baseline_images/test_path/nan_path.svg | Thomas A Caswell | 2 |
| lib/matplotlib/tests/baseline_images/test_scale/logscale_nonpos_values.png | Thomas A Caswell | 2 |
| lib/matplotlib/tests/baseline_images/test_arrow_patches/fancyarrow_dash.png | Thomas A Caswell | 2 |
| doc/devel/MEP/MEP21.rst | Thomas A Caswell | 2 |
| lib/matplotlib/tests/baseline_images/test_backends_rendering/blend_groups_agg.png | Albert Y. Shih | 2 |
| lib/matplotlib/tests/baseline_images/test_backends_rendering/blend_groups_cairo.png | Albert Y. Shih | 2 |
| lib/matplotlib/tests/baseline_images/test_backends_rendering/fill_rules_pgf.pdf | Albert Y. Shih | 2 |
| lib/matplotlib/tests/baseline_images/test_image/image_bounds_handling.png | Albert Y. Shih | 2 |
| doc/release/next_whats_new/contourset_set_data.rst | Eric Larson | 2 |
| galleries/examples/mplot3d/axlim_clip.py | Scott Shambaugh | 2 |
| galleries/examples/mplot3d/fillbetween3d.py | Scott Shambaugh | 2 |
| galleries/examples/mplot3d/fillunder3d.py | Scott Shambaugh | 2 |
| tools/run_examples.py | Antony Lee | 2 |
| doc/_static/zenodo_cache/16999430.svg | Kyle Sunden | 2 |
| doc/_static/zenodo_cache/14940554.svg | Kyle Sunden | 2 |
| doc/_static/zenodo_cache/15375714.svg | Kyle Sunden | 2 |
| doc/api/prev_api_changes/api_changes_3.10.0.rst | Kyle Sunden | 2 |
| doc/api/prev_api_changes/api_changes_3.10.0/behavior.rst | Kyle Sunden | 2 |
| doc/api/prev_api_changes/api_changes_3.10.0/development.rst | Kyle Sunden | 2 |
| doc/api/prev_api_changes/api_changes_3.10.0/removals.rst | Kyle Sunden | 2 |
Primary owner = the author with the most commits to a file. Solely owned = files only that author has touched.
| Author | Files owned | Solely owned | Files touched |
|---|---|---|---|
| Michael Droettboom | 1,421 | 209 | 2,334 |
| Víctor Zabalza | 460 | 0 | 1,003 |
| Elliott Sales de Andrade | 446 | 190 | 2,925 |
| Tim Hoffmann | 387 | 57 | 919 |
| Thomas A Caswell | 357 | 44 | 1,918 |
| Jody Klymak | 231 | 112 | 938 |
| Antony Lee | 176 | 14 | 651 |
| Kyle Sunden | 125 | 36 | 385 |
| David Stansby | 89 | 73 | 402 |
| Scott Shambaugh | 69 | 9 | 180 |
| John Hunter | 66 | 55 | 174 |
| hannah | 55 | 1 | 194 |
| Oscar Gustafsson | 50 | 9 | 394 |
| Albert Y. Shih | 49 | 34 | 213 |
| Ruth Comer | 48 | 12 | 279 |
| ImportanceOfBeingErnest | 41 | 40 | 100 |
| farquh | 39 | 0 | 42 |
| Jouni K. Seppänen | 28 | 21 | 129 |
| Ratnabali Dutta | 28 | 0 | 38 |
| katrielester | 23 | 0 | 25 |
| Trygve Magnus Ræder | 16 | 10 | 52 |
| odile | 15 | 0 | 19 |
| watkinrt | 15 | 0 | 17 |
| Ronald Hartley-Davies | 15 | 0 | 17 |
| Ian Thomas | 13 | 6 | 83 |
Files touched by the most people — shared code where changes are most likely to need coordination.
| File | Contributors | Primary owner | Owner share |
|---|---|---|---|
| lib/matplotlib/axes/_axes.py | 283 | Antony Lee | 14.2% |
| lib/matplotlib/tests/test_axes.py | 219 | Antony Lee | 12.3% |
| lib/matplotlib/pyplot.py | 181 | Antony Lee | 16.7% |
| lib/matplotlib/axes/_base.py | 128 | Antony Lee | 24.3% |
| lib/matplotlib/__init__.py | 125 | Antony Lee | 15.3% |
| lib/matplotlib/rcsetup.py | 121 | Antony Lee | 15.0% |
| lib/matplotlib/backend_bases.py | 116 | Antony Lee | 21.1% |
| lib/matplotlib/figure.py | 114 | Antony Lee | 18.3% |
| lib/matplotlib/patches.py | 103 | Antony Lee | 16.6% |
| lib/mpl_toolkits/mplot3d/axes3d.py | 97 | Antony Lee | 20.7% |
| lib/matplotlib/widgets.py | 91 | Antony Lee | 12.9% |
| lib/matplotlib/ticker.py | 91 | Antony Lee | 15.4% |
| lib/matplotlib/axis.py | 91 | Antony Lee | 16.6% |
| lib/matplotlib/colors.py | 88 | Antony Lee | 16.5% |
| lib/matplotlib/text.py | 86 | Antony Lee | 15.6% |
| lib/matplotlib/legend.py | 83 | Antony Lee | 13.7% |
| lib/matplotlib/lines.py | 82 | Michael Droettboom | 17.0% |
| lib/matplotlib/image.py | 78 | Antony Lee | 16.7% |
| lib/matplotlib/animation.py | 73 | Antony Lee | 19.7% |
| lib/matplotlib/collections.py | 72 | Michael Droettboom | 15.0% |
How Matplotlib compares with other Python open source projects →
How Matplotlib ranks among Python open source projects by AI-assisted commits →
Generate this report for your own repository with gitstats-action · All Gallery reports
Publishes the report to GitHub Pages on every push to main: turn on Pages for the gh-pages branch.
# .github/workflows/gitstats.yml
name: GitStats Report
on:
push:
branches: [main]
permissions:
contents: write
jobs:
gitstats:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- uses: shenxianpeng/gitstats-action@v1
with:
deploy-to-pages: true