mgplot 0.2.18__tar.gz → 0.2.20__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.
Files changed (53) hide show
  1. {mgplot-0.2.18 → mgplot-0.2.20}/CHANGELOG.md +21 -0
  2. {mgplot-0.2.18 → mgplot-0.2.20}/PKG-INFO +1 -1
  3. {mgplot-0.2.18 → mgplot-0.2.20}/docs/mgplot/bar_plot.html +107 -91
  4. {mgplot-0.2.18 → mgplot-0.2.20}/docs/mgplot/fill_between_plot.html +1 -1
  5. {mgplot-0.2.18 → mgplot-0.2.20}/docs/mgplot/finalise_plot.html +366 -370
  6. {mgplot-0.2.18 → mgplot-0.2.20}/docs/mgplot/growth_plot.html +2 -2
  7. {mgplot-0.2.18 → mgplot-0.2.20}/docs/mgplot/line_plot.html +2 -2
  8. {mgplot-0.2.18 → mgplot-0.2.20}/docs/mgplot/postcovid_plot.html +4 -4
  9. {mgplot-0.2.18 → mgplot-0.2.20}/docs/mgplot/summary_plot.html +8 -8
  10. {mgplot-0.2.18 → mgplot-0.2.20}/docs/mgplot.html +124 -116
  11. mgplot-0.2.20/docs/search.js +46 -0
  12. {mgplot-0.2.18 → mgplot-0.2.20}/pyproject.toml +1 -1
  13. {mgplot-0.2.18 → mgplot-0.2.20}/src/mgplot/axis_utils.py +15 -0
  14. {mgplot-0.2.18 → mgplot-0.2.20}/src/mgplot/bar_plot.py +13 -5
  15. mgplot-0.2.20/test/test_bar_string_index.py +100 -0
  16. {mgplot-0.2.18 → mgplot-0.2.20}/uv.lock +337 -336
  17. mgplot-0.2.18/docs/search.js +0 -46
  18. {mgplot-0.2.18 → mgplot-0.2.20}/.gitignore +0 -0
  19. {mgplot-0.2.18 → mgplot-0.2.20}/.pylintrc +0 -0
  20. {mgplot-0.2.18 → mgplot-0.2.20}/LICENSE +0 -0
  21. {mgplot-0.2.18 → mgplot-0.2.20}/README.md +0 -0
  22. {mgplot-0.2.18 → mgplot-0.2.20}/build-all.sh +0 -0
  23. {mgplot-0.2.18 → mgplot-0.2.20}/build-docs.sh +0 -0
  24. {mgplot-0.2.18 → mgplot-0.2.20}/docs/index.html +0 -0
  25. {mgplot-0.2.18 → mgplot-0.2.20}/docs/mgplot/revision_plot.html +0 -0
  26. {mgplot-0.2.18 → mgplot-0.2.20}/docs/mgplot/run_plot.html +0 -0
  27. {mgplot-0.2.18 → mgplot-0.2.20}/docs/mgplot/seastrend_plot.html +0 -0
  28. {mgplot-0.2.18 → mgplot-0.2.20}/src/mgplot/__init__.py +0 -0
  29. {mgplot-0.2.18 → mgplot-0.2.20}/src/mgplot/colors.py +0 -0
  30. {mgplot-0.2.18 → mgplot-0.2.20}/src/mgplot/fill_between_plot.py +0 -0
  31. {mgplot-0.2.18 → mgplot-0.2.20}/src/mgplot/finalise_plot.py +0 -0
  32. {mgplot-0.2.18 → mgplot-0.2.20}/src/mgplot/finalisers.py +0 -0
  33. {mgplot-0.2.18 → mgplot-0.2.20}/src/mgplot/growth_plot.py +0 -0
  34. {mgplot-0.2.18 → mgplot-0.2.20}/src/mgplot/keyword_checking.py +0 -0
  35. {mgplot-0.2.18 → mgplot-0.2.20}/src/mgplot/line_plot.py +0 -0
  36. {mgplot-0.2.18 → mgplot-0.2.20}/src/mgplot/lint-all.sh +0 -0
  37. {mgplot-0.2.18 → mgplot-0.2.20}/src/mgplot/multi_plot.py +0 -0
  38. {mgplot-0.2.18 → mgplot-0.2.20}/src/mgplot/postcovid_plot.py +0 -0
  39. {mgplot-0.2.18 → mgplot-0.2.20}/src/mgplot/py.typed +0 -0
  40. {mgplot-0.2.18 → mgplot-0.2.20}/src/mgplot/revision_plot.py +0 -0
  41. {mgplot-0.2.18 → mgplot-0.2.20}/src/mgplot/run_plot.py +0 -0
  42. {mgplot-0.2.18 → mgplot-0.2.20}/src/mgplot/seastrend_plot.py +0 -0
  43. {mgplot-0.2.18 → mgplot-0.2.20}/src/mgplot/settings.py +0 -0
  44. {mgplot-0.2.18 → mgplot-0.2.20}/src/mgplot/summary_plot.py +0 -0
  45. {mgplot-0.2.18 → mgplot-0.2.20}/src/mgplot/utilities.py +0 -0
  46. {mgplot-0.2.18 → mgplot-0.2.20}/test/test-executed.ipynb +0 -0
  47. {mgplot-0.2.18 → mgplot-0.2.20}/test/test.ipynb +0 -0
  48. {mgplot-0.2.18 → mgplot-0.2.20}/test/test_multi_series_ticks.py +0 -0
  49. {mgplot-0.2.18 → mgplot-0.2.20}/test/test_zorder.py +0 -0
  50. {mgplot-0.2.18 → mgplot-0.2.20}/test/zz-test-data/ocr_rba.csv +0 -0
  51. {mgplot-0.2.18 → mgplot-0.2.20}/test/zz-test-data/revisions.csv +0 -0
  52. {mgplot-0.2.18 → mgplot-0.2.20}/test/zz-test-data/summary.csv +0 -0
  53. {mgplot-0.2.18 → mgplot-0.2.20}/uv-upgrade.sh +0 -0
@@ -1,3 +1,24 @@
1
+ Version 0.2.20 - released 25-Feb-2026 (Canberra, Australia)
2
+
3
+ * bug fix
4
+ - fixed map_stringindex() to detect PyArrow-backed string dtypes
5
+ (e.g. "string", "large_string[pyarrow]") in addition to legacy "object" dtype,
6
+ using pd.api.types.is_string_dtype() instead of direct dtype comparison
7
+
8
+ ---
9
+
10
+ Version 0.2.19 - released 25-Feb-2026 (Canberra, Australia)
11
+
12
+ * bug fix
13
+ - fixed bar_plot() to handle string index values (e.g. country names)
14
+ by mapping to integer positions and restoring labels after plotting
15
+ - fixed label_rotation kwarg being silently ignored due to internal
16
+ key mismatch ("xlabel_rotation" vs "label_rotation")
17
+ - added map_stringindex() to axis_utils.py
18
+ - added test/test_bar_string_index.py
19
+
20
+ ---
21
+
1
22
  Version 0.2.18 - released 08-Jan-2026 (Canberra, Australia)
2
23
 
3
24
  * bug fix
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mgplot
3
- Version: 0.2.18
3
+ Version: 0.2.20
4
4
  Summary: mgplot is a time-series/PeriodIndex frontend for matplotlib
5
5
  Project-URL: Repository, https://github.com/bpalmer4/mgplot
6
6
  Project-URL: Homepage, https://github.com/bpalmer4/mgplot
@@ -231,7 +231,7 @@ cannot be plotted on the same axes.</p>
231
231
  </span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">matplotlib.axes</span><span class="w"> </span><span class="kn">import</span> <span class="n">Axes</span>
232
232
  </span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">pandas</span><span class="w"> </span><span class="kn">import</span> <span class="n">DataFrame</span><span class="p">,</span> <span class="n">Period</span><span class="p">,</span> <span class="n">Series</span>
233
233
  </span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a>
234
- </span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">mgplot.axis_utils</span><span class="w"> </span><span class="kn">import</span> <span class="n">map_periodindex</span><span class="p">,</span> <span class="n">set_labels</span>
234
+ </span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">mgplot.axis_utils</span><span class="w"> </span><span class="kn">import</span> <span class="n">map_periodindex</span><span class="p">,</span> <span class="n">map_stringindex</span><span class="p">,</span> <span class="n">set_labels</span>
235
235
  </span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">mgplot.keyword_checking</span><span class="w"> </span><span class="kn">import</span> <span class="n">BaseKwargs</span><span class="p">,</span> <span class="n">report_kwargs</span><span class="p">,</span> <span class="n">validate_kwargs</span>
236
236
  </span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">mgplot.settings</span><span class="w"> </span><span class="kn">import</span> <span class="n">DataT</span><span class="p">,</span> <span class="n">get_setting</span>
237
237
  </span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">mgplot.utilities</span><span class="w"> </span><span class="kn">import</span> <span class="p">(</span>
@@ -456,51 +456,59 @@ cannot be plotted on the same axes.</p>
456
456
  </span><span id="L-240"><a href="#L-240"><span class="linenos">240</span></a> <span class="n">df</span><span class="p">,</span> <span class="n">kwargs_d</span> <span class="o">=</span> <span class="n">constrain_data</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
457
457
  </span><span id="L-241"><a href="#L-241"><span class="linenos">241</span></a> <span class="n">item_count</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">df</span><span class="o">.</span><span class="n">columns</span><span class="p">)</span>
458
458
  </span><span id="L-242"><a href="#L-242"><span class="linenos">242</span></a>
459
- </span><span id="L-243"><a href="#L-243"><span class="linenos">243</span></a> <span class="c1"># --- deal with complete PeriodIndex indices</span>
460
- </span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a> <span class="n">saved_pi</span> <span class="o">=</span> <span class="n">map_periodindex</span><span class="p">(</span><span class="n">df</span><span class="p">)</span>
461
- </span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a> <span class="k">if</span> <span class="n">saved_pi</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
462
- </span><span id="L-246"><a href="#L-246"><span class="linenos">246</span></a> <span class="n">df</span> <span class="o">=</span> <span class="n">saved_pi</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="c1"># extract the reindexed DataFrame from the PeriodIndex</span>
459
+ </span><span id="L-243"><a href="#L-243"><span class="linenos">243</span></a> <span class="c1"># --- deal with string indices</span>
460
+ </span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a> <span class="n">saved_strings</span> <span class="o">=</span> <span class="n">map_stringindex</span><span class="p">(</span><span class="n">df</span><span class="p">)</span>
461
+ </span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a> <span class="k">if</span> <span class="n">saved_strings</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
462
+ </span><span id="L-246"><a href="#L-246"><span class="linenos">246</span></a> <span class="n">df</span> <span class="o">=</span> <span class="n">saved_strings</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
463
463
  </span><span id="L-247"><a href="#L-247"><span class="linenos">247</span></a>
464
- </span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a> <span class="c1"># --- set up the default arguments</span>
465
- </span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a> <span class="n">chart_defaults</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">bool</span> <span class="o">|</span> <span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span>
466
- </span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a> <span class="s2">&quot;stacked&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
467
- </span><span id="L-251"><a href="#L-251"><span class="linenos">251</span></a> <span class="s2">&quot;max_ticks&quot;</span><span class="p">:</span> <span class="n">DEFAULT_MAX_TICKS</span><span class="p">,</span>
468
- </span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a> <span class="s2">&quot;label_series&quot;</span><span class="p">:</span> <span class="n">item_count</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">,</span>
469
- </span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a> <span class="s2">&quot;xlabel_rotation&quot;</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
470
- </span><span id="L-254"><a href="#L-254"><span class="linenos">254</span></a> <span class="p">}</span>
471
- </span><span id="L-255"><a href="#L-255"><span class="linenos">255</span></a> <span class="n">chart_args</span> <span class="o">=</span> <span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">chart_defaults</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
472
- </span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a>
473
- </span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a> <span class="n">bar_defaults</span> <span class="o">=</span> <span class="p">{</span>
474
- </span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> <span class="s2">&quot;color&quot;</span><span class="p">:</span> <span class="n">get_color_list</span><span class="p">(</span><span class="n">item_count</span><span class="p">),</span>
475
- </span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a> <span class="s2">&quot;width&quot;</span><span class="p">:</span> <span class="n">get_setting</span><span class="p">(</span><span class="s2">&quot;bar_width&quot;</span><span class="p">),</span>
476
- </span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a> <span class="s2">&quot;label_series&quot;</span><span class="p">:</span> <span class="n">item_count</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">,</span>
477
- </span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a> <span class="s2">&quot;zorder&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
478
- </span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> <span class="p">}</span>
479
- </span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> <span class="n">above</span> <span class="o">=</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;above&quot;</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
480
- </span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a> <span class="n">anno_args</span><span class="p">:</span> <span class="n">AnnoKwargs</span> <span class="o">=</span> <span class="p">{</span>
481
- </span><span id="L-265"><a href="#L-265"><span class="linenos">265</span></a> <span class="s2">&quot;annotate&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;annotate&quot;</span><span class="p">,</span> <span class="kc">False</span><span class="p">),</span>
482
- </span><span id="L-266"><a href="#L-266"><span class="linenos">266</span></a> <span class="s2">&quot;fontsize&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;fontsize&quot;</span><span class="p">,</span> <span class="s2">&quot;small&quot;</span><span class="p">),</span>
483
- </span><span id="L-267"><a href="#L-267"><span class="linenos">267</span></a> <span class="s2">&quot;fontname&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;fontname&quot;</span><span class="p">,</span> <span class="s2">&quot;Helvetica&quot;</span><span class="p">),</span>
484
- </span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a> <span class="s2">&quot;rotation&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;rotation&quot;</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span>
485
- </span><span id="L-269"><a href="#L-269"><span class="linenos">269</span></a> <span class="s2">&quot;rounding&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;rounding&quot;</span><span class="p">,</span> <span class="kc">True</span><span class="p">),</span>
486
- </span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a> <span class="s2">&quot;color&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;annotate_color&quot;</span><span class="p">,</span> <span class="s2">&quot;black&quot;</span> <span class="k">if</span> <span class="n">above</span> <span class="k">else</span> <span class="s2">&quot;white&quot;</span><span class="p">),</span>
487
- </span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a> <span class="s2">&quot;above&quot;</span><span class="p">:</span> <span class="n">above</span><span class="p">,</span>
488
- </span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a> <span class="p">}</span>
489
- </span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a> <span class="n">bar_args</span><span class="p">,</span> <span class="n">remaining_kwargs</span> <span class="o">=</span> <span class="n">apply_defaults</span><span class="p">(</span><span class="n">item_count</span><span class="p">,</span> <span class="n">bar_defaults</span><span class="p">,</span> <span class="n">kwargs_d</span><span class="p">)</span>
490
- </span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a>
491
- </span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a> <span class="c1"># --- plot the data</span>
492
- </span><span id="L-276"><a href="#L-276"><span class="linenos">276</span></a> <span class="n">axes</span><span class="p">,</span> <span class="n">remaining_kwargs</span> <span class="o">=</span> <span class="n">get_axes</span><span class="p">(</span><span class="o">**</span><span class="nb">dict</span><span class="p">(</span><span class="n">remaining_kwargs</span><span class="p">))</span>
493
- </span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a> <span class="k">if</span> <span class="n">chart_args</span><span class="p">[</span><span class="s2">&quot;stacked&quot;</span><span class="p">]:</span>
494
- </span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a> <span class="n">stacked</span><span class="p">(</span><span class="n">axes</span><span class="p">,</span> <span class="n">df</span><span class="p">,</span> <span class="n">anno_args</span><span class="p">,</span> <span class="o">**</span><span class="n">bar_args</span><span class="p">)</span>
495
- </span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a> <span class="k">else</span><span class="p">:</span>
496
- </span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a> <span class="n">grouped</span><span class="p">(</span><span class="n">axes</span><span class="p">,</span> <span class="n">df</span><span class="p">,</span> <span class="n">anno_args</span><span class="p">,</span> <span class="o">**</span><span class="n">bar_args</span><span class="p">)</span>
497
- </span><span id="L-281"><a href="#L-281"><span class="linenos">281</span></a>
498
- </span><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a> <span class="c1"># --- handle complete periodIndex data and label rotation</span>
499
- </span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a> <span class="k">if</span> <span class="n">saved_pi</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
500
- </span><span id="L-284"><a href="#L-284"><span class="linenos">284</span></a> <span class="n">set_labels</span><span class="p">(</span><span class="n">axes</span><span class="p">,</span> <span class="n">saved_pi</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">chart_args</span><span class="p">[</span><span class="s2">&quot;max_ticks&quot;</span><span class="p">])</span>
501
- </span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a> <span class="n">plt</span><span class="o">.</span><span class="n">xticks</span><span class="p">(</span><span class="n">rotation</span><span class="o">=</span><span class="n">chart_args</span><span class="p">[</span><span class="s2">&quot;xlabel_rotation&quot;</span><span class="p">])</span>
464
+ </span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a> <span class="c1"># --- deal with complete PeriodIndex indices</span>
465
+ </span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a> <span class="n">saved_pi</span> <span class="o">=</span> <span class="n">map_periodindex</span><span class="p">(</span><span class="n">df</span><span class="p">)</span>
466
+ </span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a> <span class="k">if</span> <span class="n">saved_pi</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
467
+ </span><span id="L-251"><a href="#L-251"><span class="linenos">251</span></a> <span class="n">df</span> <span class="o">=</span> <span class="n">saved_pi</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="c1"># extract the reindexed DataFrame from the PeriodIndex</span>
468
+ </span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a>
469
+ </span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a> <span class="c1"># --- set up the default arguments</span>
470
+ </span><span id="L-254"><a href="#L-254"><span class="linenos">254</span></a> <span class="n">chart_defaults</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">bool</span> <span class="o">|</span> <span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span>
471
+ </span><span id="L-255"><a href="#L-255"><span class="linenos">255</span></a> <span class="s2">&quot;stacked&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
472
+ </span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a> <span class="s2">&quot;max_ticks&quot;</span><span class="p">:</span> <span class="n">DEFAULT_MAX_TICKS</span><span class="p">,</span>
473
+ </span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a> <span class="s2">&quot;label_series&quot;</span><span class="p">:</span> <span class="n">item_count</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">,</span>
474
+ </span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> <span class="s2">&quot;label_rotation&quot;</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
475
+ </span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a> <span class="p">}</span>
476
+ </span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a> <span class="n">chart_args</span> <span class="o">=</span> <span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">chart_defaults</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
477
+ </span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a>
478
+ </span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> <span class="n">bar_defaults</span> <span class="o">=</span> <span class="p">{</span>
479
+ </span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> <span class="s2">&quot;color&quot;</span><span class="p">:</span> <span class="n">get_color_list</span><span class="p">(</span><span class="n">item_count</span><span class="p">),</span>
480
+ </span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a> <span class="s2">&quot;width&quot;</span><span class="p">:</span> <span class="n">get_setting</span><span class="p">(</span><span class="s2">&quot;bar_width&quot;</span><span class="p">),</span>
481
+ </span><span id="L-265"><a href="#L-265"><span class="linenos">265</span></a> <span class="s2">&quot;label_series&quot;</span><span class="p">:</span> <span class="n">item_count</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">,</span>
482
+ </span><span id="L-266"><a href="#L-266"><span class="linenos">266</span></a> <span class="s2">&quot;zorder&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
483
+ </span><span id="L-267"><a href="#L-267"><span class="linenos">267</span></a> <span class="p">}</span>
484
+ </span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a> <span class="n">above</span> <span class="o">=</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;above&quot;</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
485
+ </span><span id="L-269"><a href="#L-269"><span class="linenos">269</span></a> <span class="n">anno_args</span><span class="p">:</span> <span class="n">AnnoKwargs</span> <span class="o">=</span> <span class="p">{</span>
486
+ </span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a> <span class="s2">&quot;annotate&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;annotate&quot;</span><span class="p">,</span> <span class="kc">False</span><span class="p">),</span>
487
+ </span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a> <span class="s2">&quot;fontsize&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;fontsize&quot;</span><span class="p">,</span> <span class="s2">&quot;small&quot;</span><span class="p">),</span>
488
+ </span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a> <span class="s2">&quot;fontname&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;fontname&quot;</span><span class="p">,</span> <span class="s2">&quot;Helvetica&quot;</span><span class="p">),</span>
489
+ </span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a> <span class="s2">&quot;rotation&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;rotation&quot;</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span>
490
+ </span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a> <span class="s2">&quot;rounding&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;rounding&quot;</span><span class="p">,</span> <span class="kc">True</span><span class="p">),</span>
491
+ </span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a> <span class="s2">&quot;color&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;annotate_color&quot;</span><span class="p">,</span> <span class="s2">&quot;black&quot;</span> <span class="k">if</span> <span class="n">above</span> <span class="k">else</span> <span class="s2">&quot;white&quot;</span><span class="p">),</span>
492
+ </span><span id="L-276"><a href="#L-276"><span class="linenos">276</span></a> <span class="s2">&quot;above&quot;</span><span class="p">:</span> <span class="n">above</span><span class="p">,</span>
493
+ </span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a> <span class="p">}</span>
494
+ </span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a> <span class="n">bar_args</span><span class="p">,</span> <span class="n">remaining_kwargs</span> <span class="o">=</span> <span class="n">apply_defaults</span><span class="p">(</span><span class="n">item_count</span><span class="p">,</span> <span class="n">bar_defaults</span><span class="p">,</span> <span class="n">kwargs_d</span><span class="p">)</span>
495
+ </span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a>
496
+ </span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a> <span class="c1"># --- plot the data</span>
497
+ </span><span id="L-281"><a href="#L-281"><span class="linenos">281</span></a> <span class="n">axes</span><span class="p">,</span> <span class="n">remaining_kwargs</span> <span class="o">=</span> <span class="n">get_axes</span><span class="p">(</span><span class="o">**</span><span class="nb">dict</span><span class="p">(</span><span class="n">remaining_kwargs</span><span class="p">))</span>
498
+ </span><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a> <span class="k">if</span> <span class="n">chart_args</span><span class="p">[</span><span class="s2">&quot;stacked&quot;</span><span class="p">]:</span>
499
+ </span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a> <span class="n">stacked</span><span class="p">(</span><span class="n">axes</span><span class="p">,</span> <span class="n">df</span><span class="p">,</span> <span class="n">anno_args</span><span class="p">,</span> <span class="o">**</span><span class="n">bar_args</span><span class="p">)</span>
500
+ </span><span id="L-284"><a href="#L-284"><span class="linenos">284</span></a> <span class="k">else</span><span class="p">:</span>
501
+ </span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a> <span class="n">grouped</span><span class="p">(</span><span class="n">axes</span><span class="p">,</span> <span class="n">df</span><span class="p">,</span> <span class="n">anno_args</span><span class="p">,</span> <span class="o">**</span><span class="n">bar_args</span><span class="p">)</span>
502
502
  </span><span id="L-286"><a href="#L-286"><span class="linenos">286</span></a>
503
- </span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a> <span class="k">return</span> <span class="n">axes</span>
503
+ </span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a> <span class="c1"># --- handle index labels and rotation</span>
504
+ </span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a> <span class="k">if</span> <span class="n">saved_strings</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
505
+ </span><span id="L-289"><a href="#L-289"><span class="linenos">289</span></a> <span class="n">axes</span><span class="o">.</span><span class="n">set_xticks</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">saved_strings</span><span class="p">[</span><span class="mi">1</span><span class="p">])))</span>
506
+ </span><span id="L-290"><a href="#L-290"><span class="linenos">290</span></a> <span class="n">axes</span><span class="o">.</span><span class="n">set_xticklabels</span><span class="p">(</span><span class="n">saved_strings</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
507
+ </span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a> <span class="k">elif</span> <span class="n">saved_pi</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
508
+ </span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a> <span class="n">set_labels</span><span class="p">(</span><span class="n">axes</span><span class="p">,</span> <span class="n">saved_pi</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">chart_args</span><span class="p">[</span><span class="s2">&quot;max_ticks&quot;</span><span class="p">])</span>
509
+ </span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a> <span class="n">plt</span><span class="o">.</span><span class="n">xticks</span><span class="p">(</span><span class="n">rotation</span><span class="o">=</span><span class="n">chart_args</span><span class="p">[</span><span class="s2">&quot;label_rotation&quot;</span><span class="p">])</span>
510
+ </span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a>
511
+ </span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> <span class="k">return</span> <span class="n">axes</span>
504
512
  </span></pre></div>
505
513
 
506
514
 
@@ -676,7 +684,7 @@ cannot be plotted on the same axes.</p>
676
684
  </div>
677
685
  <div id="BarKwargs.plot_from" class="classattr">
678
686
  <div class="attr variable">
679
- <span class="name">plot_from</span><span class="annotation">: NotRequired[int | pandas._libs.tslibs.period.Period]</span>
687
+ <span class="name">plot_from</span><span class="annotation">: NotRequired[int | pandas.Period]</span>
680
688
 
681
689
 
682
690
  </div>
@@ -941,7 +949,7 @@ cannot be plotted on the same axes.</p>
941
949
  <div class="attr function">
942
950
 
943
951
  <span class="def">def</span>
944
- <span class="name">annotate_bars</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">series</span><span class="p">:</span> <span class="n">pandas</span><span class="o">.</span><span class="n">core</span><span class="o">.</span><span class="n">series</span><span class="o">.</span><span class="n">Series</span>,</span><span class="param"> <span class="n">offset</span><span class="p">:</span> <span class="nb">float</span>,</span><span class="param"> <span class="n">base</span><span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">ndarray</span>,</span><span class="param"> <span class="n">axes</span><span class="p">:</span> <span class="n">matplotlib</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">_axes</span><span class="o">.</span><span class="n">Axes</span>,</span><span class="param"> <span class="o">**</span><span class="n">anno_kwargs</span><span class="p">:</span> <span class="n">Unpack</span><span class="p">[</span><span class="n"><a href="#AnnoKwargs">AnnoKwargs</a></span><span class="p">]</span></span><span class="return-annotation">) -> <span class="kc">None</span>:</span></span>
952
+ <span class="name">annotate_bars</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">series</span><span class="p">:</span> <span class="n">pandas</span><span class="o">.</span><span class="n">Series</span>,</span><span class="param"> <span class="n">offset</span><span class="p">:</span> <span class="nb">float</span>,</span><span class="param"> <span class="n">base</span><span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">ndarray</span>,</span><span class="param"> <span class="n">axes</span><span class="p">:</span> <span class="n">matplotlib</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">_axes</span><span class="o">.</span><span class="n">Axes</span>,</span><span class="param"> <span class="o">**</span><span class="n">anno_kwargs</span><span class="p">:</span> <span class="n">Unpack</span><span class="p">[</span><span class="n"><a href="#AnnoKwargs">AnnoKwargs</a></span><span class="p">]</span></span><span class="return-annotation">) -> <span class="kc">None</span>:</span></span>
945
953
 
946
954
  <label class="view-source-button" for="annotate_bars-view-source"><span>View Source</span></label>
947
955
 
@@ -1084,7 +1092,7 @@ cannot be plotted on the same axes.</p>
1084
1092
  <div class="attr function">
1085
1093
 
1086
1094
  <span class="def">def</span>
1087
- <span class="name">grouped</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">axes</span><span class="p">:</span> <span class="n">matplotlib</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">_axes</span><span class="o">.</span><span class="n">Axes</span>,</span><span class="param"> <span class="n">df</span><span class="p">:</span> <span class="n">pandas</span><span class="o">.</span><span class="n">core</span><span class="o">.</span><span class="n">frame</span><span class="o">.</span><span class="n">DataFrame</span>,</span><span class="param"> <span class="n">anno_args</span><span class="p">:</span> <span class="n"><a href="#AnnoKwargs">AnnoKwargs</a></span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n">Unpack</span><span class="p">[</span><span class="n"><a href="#GroupedKwargs">GroupedKwargs</a></span><span class="p">]</span></span><span class="return-annotation">) -> <span class="kc">None</span>:</span></span>
1095
+ <span class="name">grouped</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">axes</span><span class="p">:</span> <span class="n">matplotlib</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">_axes</span><span class="o">.</span><span class="n">Axes</span>,</span><span class="param"> <span class="n">df</span><span class="p">:</span> <span class="n">pandas</span><span class="o">.</span><span class="n">DataFrame</span>,</span><span class="param"> <span class="n">anno_args</span><span class="p">:</span> <span class="n"><a href="#AnnoKwargs">AnnoKwargs</a></span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n">Unpack</span><span class="p">[</span><span class="n"><a href="#GroupedKwargs">GroupedKwargs</a></span><span class="p">]</span></span><span class="return-annotation">) -> <span class="kc">None</span>:</span></span>
1088
1096
 
1089
1097
  <label class="view-source-button" for="grouped-view-source"><span>View Source</span></label>
1090
1098
 
@@ -1205,7 +1213,7 @@ cannot be plotted on the same axes.</p>
1205
1213
  <div class="attr function">
1206
1214
 
1207
1215
  <span class="def">def</span>
1208
- <span class="name">stacked</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">axes</span><span class="p">:</span> <span class="n">matplotlib</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">_axes</span><span class="o">.</span><span class="n">Axes</span>,</span><span class="param"> <span class="n">df</span><span class="p">:</span> <span class="n">pandas</span><span class="o">.</span><span class="n">core</span><span class="o">.</span><span class="n">frame</span><span class="o">.</span><span class="n">DataFrame</span>,</span><span class="param"> <span class="n">anno_args</span><span class="p">:</span> <span class="n"><a href="#AnnoKwargs">AnnoKwargs</a></span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n">Unpack</span><span class="p">[</span><span class="n"><a href="#StackedKwargs">StackedKwargs</a></span><span class="p">]</span></span><span class="return-annotation">) -> <span class="kc">None</span>:</span></span>
1216
+ <span class="name">stacked</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">axes</span><span class="p">:</span> <span class="n">matplotlib</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">_axes</span><span class="o">.</span><span class="n">Axes</span>,</span><span class="param"> <span class="n">df</span><span class="p">:</span> <span class="n">pandas</span><span class="o">.</span><span class="n">DataFrame</span>,</span><span class="param"> <span class="n">anno_args</span><span class="p">:</span> <span class="n"><a href="#AnnoKwargs">AnnoKwargs</a></span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n">Unpack</span><span class="p">[</span><span class="n"><a href="#StackedKwargs">StackedKwargs</a></span><span class="p">]</span></span><span class="return-annotation">) -> <span class="kc">None</span>:</span></span>
1209
1217
 
1210
1218
  <label class="view-source-button" for="stacked-view-source"><span>View Source</span></label>
1211
1219
 
@@ -1287,51 +1295,59 @@ cannot be plotted on the same axes.</p>
1287
1295
  </span><span id="bar_plot-241"><a href="#bar_plot-241"><span class="linenos">241</span></a> <span class="n">df</span><span class="p">,</span> <span class="n">kwargs_d</span> <span class="o">=</span> <span class="n">constrain_data</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
1288
1296
  </span><span id="bar_plot-242"><a href="#bar_plot-242"><span class="linenos">242</span></a> <span class="n">item_count</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">df</span><span class="o">.</span><span class="n">columns</span><span class="p">)</span>
1289
1297
  </span><span id="bar_plot-243"><a href="#bar_plot-243"><span class="linenos">243</span></a>
1290
- </span><span id="bar_plot-244"><a href="#bar_plot-244"><span class="linenos">244</span></a> <span class="c1"># --- deal with complete PeriodIndex indices</span>
1291
- </span><span id="bar_plot-245"><a href="#bar_plot-245"><span class="linenos">245</span></a> <span class="n">saved_pi</span> <span class="o">=</span> <span class="n">map_periodindex</span><span class="p">(</span><span class="n">df</span><span class="p">)</span>
1292
- </span><span id="bar_plot-246"><a href="#bar_plot-246"><span class="linenos">246</span></a> <span class="k">if</span> <span class="n">saved_pi</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
1293
- </span><span id="bar_plot-247"><a href="#bar_plot-247"><span class="linenos">247</span></a> <span class="n">df</span> <span class="o">=</span> <span class="n">saved_pi</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="c1"># extract the reindexed DataFrame from the PeriodIndex</span>
1298
+ </span><span id="bar_plot-244"><a href="#bar_plot-244"><span class="linenos">244</span></a> <span class="c1"># --- deal with string indices</span>
1299
+ </span><span id="bar_plot-245"><a href="#bar_plot-245"><span class="linenos">245</span></a> <span class="n">saved_strings</span> <span class="o">=</span> <span class="n">map_stringindex</span><span class="p">(</span><span class="n">df</span><span class="p">)</span>
1300
+ </span><span id="bar_plot-246"><a href="#bar_plot-246"><span class="linenos">246</span></a> <span class="k">if</span> <span class="n">saved_strings</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
1301
+ </span><span id="bar_plot-247"><a href="#bar_plot-247"><span class="linenos">247</span></a> <span class="n">df</span> <span class="o">=</span> <span class="n">saved_strings</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
1294
1302
  </span><span id="bar_plot-248"><a href="#bar_plot-248"><span class="linenos">248</span></a>
1295
- </span><span id="bar_plot-249"><a href="#bar_plot-249"><span class="linenos">249</span></a> <span class="c1"># --- set up the default arguments</span>
1296
- </span><span id="bar_plot-250"><a href="#bar_plot-250"><span class="linenos">250</span></a> <span class="n">chart_defaults</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">bool</span> <span class="o">|</span> <span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span>
1297
- </span><span id="bar_plot-251"><a href="#bar_plot-251"><span class="linenos">251</span></a> <span class="s2">&quot;stacked&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
1298
- </span><span id="bar_plot-252"><a href="#bar_plot-252"><span class="linenos">252</span></a> <span class="s2">&quot;max_ticks&quot;</span><span class="p">:</span> <span class="n">DEFAULT_MAX_TICKS</span><span class="p">,</span>
1299
- </span><span id="bar_plot-253"><a href="#bar_plot-253"><span class="linenos">253</span></a> <span class="s2">&quot;label_series&quot;</span><span class="p">:</span> <span class="n">item_count</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">,</span>
1300
- </span><span id="bar_plot-254"><a href="#bar_plot-254"><span class="linenos">254</span></a> <span class="s2">&quot;xlabel_rotation&quot;</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
1301
- </span><span id="bar_plot-255"><a href="#bar_plot-255"><span class="linenos">255</span></a> <span class="p">}</span>
1302
- </span><span id="bar_plot-256"><a href="#bar_plot-256"><span class="linenos">256</span></a> <span class="n">chart_args</span> <span class="o">=</span> <span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">chart_defaults</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
1303
- </span><span id="bar_plot-257"><a href="#bar_plot-257"><span class="linenos">257</span></a>
1304
- </span><span id="bar_plot-258"><a href="#bar_plot-258"><span class="linenos">258</span></a> <span class="n">bar_defaults</span> <span class="o">=</span> <span class="p">{</span>
1305
- </span><span id="bar_plot-259"><a href="#bar_plot-259"><span class="linenos">259</span></a> <span class="s2">&quot;color&quot;</span><span class="p">:</span> <span class="n">get_color_list</span><span class="p">(</span><span class="n">item_count</span><span class="p">),</span>
1306
- </span><span id="bar_plot-260"><a href="#bar_plot-260"><span class="linenos">260</span></a> <span class="s2">&quot;width&quot;</span><span class="p">:</span> <span class="n">get_setting</span><span class="p">(</span><span class="s2">&quot;bar_width&quot;</span><span class="p">),</span>
1307
- </span><span id="bar_plot-261"><a href="#bar_plot-261"><span class="linenos">261</span></a> <span class="s2">&quot;label_series&quot;</span><span class="p">:</span> <span class="n">item_count</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">,</span>
1308
- </span><span id="bar_plot-262"><a href="#bar_plot-262"><span class="linenos">262</span></a> <span class="s2">&quot;zorder&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
1309
- </span><span id="bar_plot-263"><a href="#bar_plot-263"><span class="linenos">263</span></a> <span class="p">}</span>
1310
- </span><span id="bar_plot-264"><a href="#bar_plot-264"><span class="linenos">264</span></a> <span class="n">above</span> <span class="o">=</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;above&quot;</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
1311
- </span><span id="bar_plot-265"><a href="#bar_plot-265"><span class="linenos">265</span></a> <span class="n">anno_args</span><span class="p">:</span> <span class="n">AnnoKwargs</span> <span class="o">=</span> <span class="p">{</span>
1312
- </span><span id="bar_plot-266"><a href="#bar_plot-266"><span class="linenos">266</span></a> <span class="s2">&quot;annotate&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;annotate&quot;</span><span class="p">,</span> <span class="kc">False</span><span class="p">),</span>
1313
- </span><span id="bar_plot-267"><a href="#bar_plot-267"><span class="linenos">267</span></a> <span class="s2">&quot;fontsize&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;fontsize&quot;</span><span class="p">,</span> <span class="s2">&quot;small&quot;</span><span class="p">),</span>
1314
- </span><span id="bar_plot-268"><a href="#bar_plot-268"><span class="linenos">268</span></a> <span class="s2">&quot;fontname&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;fontname&quot;</span><span class="p">,</span> <span class="s2">&quot;Helvetica&quot;</span><span class="p">),</span>
1315
- </span><span id="bar_plot-269"><a href="#bar_plot-269"><span class="linenos">269</span></a> <span class="s2">&quot;rotation&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;rotation&quot;</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span>
1316
- </span><span id="bar_plot-270"><a href="#bar_plot-270"><span class="linenos">270</span></a> <span class="s2">&quot;rounding&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;rounding&quot;</span><span class="p">,</span> <span class="kc">True</span><span class="p">),</span>
1317
- </span><span id="bar_plot-271"><a href="#bar_plot-271"><span class="linenos">271</span></a> <span class="s2">&quot;color&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;annotate_color&quot;</span><span class="p">,</span> <span class="s2">&quot;black&quot;</span> <span class="k">if</span> <span class="n">above</span> <span class="k">else</span> <span class="s2">&quot;white&quot;</span><span class="p">),</span>
1318
- </span><span id="bar_plot-272"><a href="#bar_plot-272"><span class="linenos">272</span></a> <span class="s2">&quot;above&quot;</span><span class="p">:</span> <span class="n">above</span><span class="p">,</span>
1319
- </span><span id="bar_plot-273"><a href="#bar_plot-273"><span class="linenos">273</span></a> <span class="p">}</span>
1320
- </span><span id="bar_plot-274"><a href="#bar_plot-274"><span class="linenos">274</span></a> <span class="n">bar_args</span><span class="p">,</span> <span class="n">remaining_kwargs</span> <span class="o">=</span> <span class="n">apply_defaults</span><span class="p">(</span><span class="n">item_count</span><span class="p">,</span> <span class="n">bar_defaults</span><span class="p">,</span> <span class="n">kwargs_d</span><span class="p">)</span>
1321
- </span><span id="bar_plot-275"><a href="#bar_plot-275"><span class="linenos">275</span></a>
1322
- </span><span id="bar_plot-276"><a href="#bar_plot-276"><span class="linenos">276</span></a> <span class="c1"># --- plot the data</span>
1323
- </span><span id="bar_plot-277"><a href="#bar_plot-277"><span class="linenos">277</span></a> <span class="n">axes</span><span class="p">,</span> <span class="n">remaining_kwargs</span> <span class="o">=</span> <span class="n">get_axes</span><span class="p">(</span><span class="o">**</span><span class="nb">dict</span><span class="p">(</span><span class="n">remaining_kwargs</span><span class="p">))</span>
1324
- </span><span id="bar_plot-278"><a href="#bar_plot-278"><span class="linenos">278</span></a> <span class="k">if</span> <span class="n">chart_args</span><span class="p">[</span><span class="s2">&quot;stacked&quot;</span><span class="p">]:</span>
1325
- </span><span id="bar_plot-279"><a href="#bar_plot-279"><span class="linenos">279</span></a> <span class="n">stacked</span><span class="p">(</span><span class="n">axes</span><span class="p">,</span> <span class="n">df</span><span class="p">,</span> <span class="n">anno_args</span><span class="p">,</span> <span class="o">**</span><span class="n">bar_args</span><span class="p">)</span>
1326
- </span><span id="bar_plot-280"><a href="#bar_plot-280"><span class="linenos">280</span></a> <span class="k">else</span><span class="p">:</span>
1327
- </span><span id="bar_plot-281"><a href="#bar_plot-281"><span class="linenos">281</span></a> <span class="n">grouped</span><span class="p">(</span><span class="n">axes</span><span class="p">,</span> <span class="n">df</span><span class="p">,</span> <span class="n">anno_args</span><span class="p">,</span> <span class="o">**</span><span class="n">bar_args</span><span class="p">)</span>
1328
- </span><span id="bar_plot-282"><a href="#bar_plot-282"><span class="linenos">282</span></a>
1329
- </span><span id="bar_plot-283"><a href="#bar_plot-283"><span class="linenos">283</span></a> <span class="c1"># --- handle complete periodIndex data and label rotation</span>
1330
- </span><span id="bar_plot-284"><a href="#bar_plot-284"><span class="linenos">284</span></a> <span class="k">if</span> <span class="n">saved_pi</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
1331
- </span><span id="bar_plot-285"><a href="#bar_plot-285"><span class="linenos">285</span></a> <span class="n">set_labels</span><span class="p">(</span><span class="n">axes</span><span class="p">,</span> <span class="n">saved_pi</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">chart_args</span><span class="p">[</span><span class="s2">&quot;max_ticks&quot;</span><span class="p">])</span>
1332
- </span><span id="bar_plot-286"><a href="#bar_plot-286"><span class="linenos">286</span></a> <span class="n">plt</span><span class="o">.</span><span class="n">xticks</span><span class="p">(</span><span class="n">rotation</span><span class="o">=</span><span class="n">chart_args</span><span class="p">[</span><span class="s2">&quot;xlabel_rotation&quot;</span><span class="p">])</span>
1303
+ </span><span id="bar_plot-249"><a href="#bar_plot-249"><span class="linenos">249</span></a> <span class="c1"># --- deal with complete PeriodIndex indices</span>
1304
+ </span><span id="bar_plot-250"><a href="#bar_plot-250"><span class="linenos">250</span></a> <span class="n">saved_pi</span> <span class="o">=</span> <span class="n">map_periodindex</span><span class="p">(</span><span class="n">df</span><span class="p">)</span>
1305
+ </span><span id="bar_plot-251"><a href="#bar_plot-251"><span class="linenos">251</span></a> <span class="k">if</span> <span class="n">saved_pi</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
1306
+ </span><span id="bar_plot-252"><a href="#bar_plot-252"><span class="linenos">252</span></a> <span class="n">df</span> <span class="o">=</span> <span class="n">saved_pi</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="c1"># extract the reindexed DataFrame from the PeriodIndex</span>
1307
+ </span><span id="bar_plot-253"><a href="#bar_plot-253"><span class="linenos">253</span></a>
1308
+ </span><span id="bar_plot-254"><a href="#bar_plot-254"><span class="linenos">254</span></a> <span class="c1"># --- set up the default arguments</span>
1309
+ </span><span id="bar_plot-255"><a href="#bar_plot-255"><span class="linenos">255</span></a> <span class="n">chart_defaults</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">bool</span> <span class="o">|</span> <span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span>
1310
+ </span><span id="bar_plot-256"><a href="#bar_plot-256"><span class="linenos">256</span></a> <span class="s2">&quot;stacked&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
1311
+ </span><span id="bar_plot-257"><a href="#bar_plot-257"><span class="linenos">257</span></a> <span class="s2">&quot;max_ticks&quot;</span><span class="p">:</span> <span class="n">DEFAULT_MAX_TICKS</span><span class="p">,</span>
1312
+ </span><span id="bar_plot-258"><a href="#bar_plot-258"><span class="linenos">258</span></a> <span class="s2">&quot;label_series&quot;</span><span class="p">:</span> <span class="n">item_count</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">,</span>
1313
+ </span><span id="bar_plot-259"><a href="#bar_plot-259"><span class="linenos">259</span></a> <span class="s2">&quot;label_rotation&quot;</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
1314
+ </span><span id="bar_plot-260"><a href="#bar_plot-260"><span class="linenos">260</span></a> <span class="p">}</span>
1315
+ </span><span id="bar_plot-261"><a href="#bar_plot-261"><span class="linenos">261</span></a> <span class="n">chart_args</span> <span class="o">=</span> <span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">chart_defaults</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
1316
+ </span><span id="bar_plot-262"><a href="#bar_plot-262"><span class="linenos">262</span></a>
1317
+ </span><span id="bar_plot-263"><a href="#bar_plot-263"><span class="linenos">263</span></a> <span class="n">bar_defaults</span> <span class="o">=</span> <span class="p">{</span>
1318
+ </span><span id="bar_plot-264"><a href="#bar_plot-264"><span class="linenos">264</span></a> <span class="s2">&quot;color&quot;</span><span class="p">:</span> <span class="n">get_color_list</span><span class="p">(</span><span class="n">item_count</span><span class="p">),</span>
1319
+ </span><span id="bar_plot-265"><a href="#bar_plot-265"><span class="linenos">265</span></a> <span class="s2">&quot;width&quot;</span><span class="p">:</span> <span class="n">get_setting</span><span class="p">(</span><span class="s2">&quot;bar_width&quot;</span><span class="p">),</span>
1320
+ </span><span id="bar_plot-266"><a href="#bar_plot-266"><span class="linenos">266</span></a> <span class="s2">&quot;label_series&quot;</span><span class="p">:</span> <span class="n">item_count</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">,</span>
1321
+ </span><span id="bar_plot-267"><a href="#bar_plot-267"><span class="linenos">267</span></a> <span class="s2">&quot;zorder&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
1322
+ </span><span id="bar_plot-268"><a href="#bar_plot-268"><span class="linenos">268</span></a> <span class="p">}</span>
1323
+ </span><span id="bar_plot-269"><a href="#bar_plot-269"><span class="linenos">269</span></a> <span class="n">above</span> <span class="o">=</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;above&quot;</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
1324
+ </span><span id="bar_plot-270"><a href="#bar_plot-270"><span class="linenos">270</span></a> <span class="n">anno_args</span><span class="p">:</span> <span class="n">AnnoKwargs</span> <span class="o">=</span> <span class="p">{</span>
1325
+ </span><span id="bar_plot-271"><a href="#bar_plot-271"><span class="linenos">271</span></a> <span class="s2">&quot;annotate&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;annotate&quot;</span><span class="p">,</span> <span class="kc">False</span><span class="p">),</span>
1326
+ </span><span id="bar_plot-272"><a href="#bar_plot-272"><span class="linenos">272</span></a> <span class="s2">&quot;fontsize&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;fontsize&quot;</span><span class="p">,</span> <span class="s2">&quot;small&quot;</span><span class="p">),</span>
1327
+ </span><span id="bar_plot-273"><a href="#bar_plot-273"><span class="linenos">273</span></a> <span class="s2">&quot;fontname&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;fontname&quot;</span><span class="p">,</span> <span class="s2">&quot;Helvetica&quot;</span><span class="p">),</span>
1328
+ </span><span id="bar_plot-274"><a href="#bar_plot-274"><span class="linenos">274</span></a> <span class="s2">&quot;rotation&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;rotation&quot;</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span>
1329
+ </span><span id="bar_plot-275"><a href="#bar_plot-275"><span class="linenos">275</span></a> <span class="s2">&quot;rounding&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;rounding&quot;</span><span class="p">,</span> <span class="kc">True</span><span class="p">),</span>
1330
+ </span><span id="bar_plot-276"><a href="#bar_plot-276"><span class="linenos">276</span></a> <span class="s2">&quot;color&quot;</span><span class="p">:</span> <span class="n">kwargs_d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;annotate_color&quot;</span><span class="p">,</span> <span class="s2">&quot;black&quot;</span> <span class="k">if</span> <span class="n">above</span> <span class="k">else</span> <span class="s2">&quot;white&quot;</span><span class="p">),</span>
1331
+ </span><span id="bar_plot-277"><a href="#bar_plot-277"><span class="linenos">277</span></a> <span class="s2">&quot;above&quot;</span><span class="p">:</span> <span class="n">above</span><span class="p">,</span>
1332
+ </span><span id="bar_plot-278"><a href="#bar_plot-278"><span class="linenos">278</span></a> <span class="p">}</span>
1333
+ </span><span id="bar_plot-279"><a href="#bar_plot-279"><span class="linenos">279</span></a> <span class="n">bar_args</span><span class="p">,</span> <span class="n">remaining_kwargs</span> <span class="o">=</span> <span class="n">apply_defaults</span><span class="p">(</span><span class="n">item_count</span><span class="p">,</span> <span class="n">bar_defaults</span><span class="p">,</span> <span class="n">kwargs_d</span><span class="p">)</span>
1334
+ </span><span id="bar_plot-280"><a href="#bar_plot-280"><span class="linenos">280</span></a>
1335
+ </span><span id="bar_plot-281"><a href="#bar_plot-281"><span class="linenos">281</span></a> <span class="c1"># --- plot the data</span>
1336
+ </span><span id="bar_plot-282"><a href="#bar_plot-282"><span class="linenos">282</span></a> <span class="n">axes</span><span class="p">,</span> <span class="n">remaining_kwargs</span> <span class="o">=</span> <span class="n">get_axes</span><span class="p">(</span><span class="o">**</span><span class="nb">dict</span><span class="p">(</span><span class="n">remaining_kwargs</span><span class="p">))</span>
1337
+ </span><span id="bar_plot-283"><a href="#bar_plot-283"><span class="linenos">283</span></a> <span class="k">if</span> <span class="n">chart_args</span><span class="p">[</span><span class="s2">&quot;stacked&quot;</span><span class="p">]:</span>
1338
+ </span><span id="bar_plot-284"><a href="#bar_plot-284"><span class="linenos">284</span></a> <span class="n">stacked</span><span class="p">(</span><span class="n">axes</span><span class="p">,</span> <span class="n">df</span><span class="p">,</span> <span class="n">anno_args</span><span class="p">,</span> <span class="o">**</span><span class="n">bar_args</span><span class="p">)</span>
1339
+ </span><span id="bar_plot-285"><a href="#bar_plot-285"><span class="linenos">285</span></a> <span class="k">else</span><span class="p">:</span>
1340
+ </span><span id="bar_plot-286"><a href="#bar_plot-286"><span class="linenos">286</span></a> <span class="n">grouped</span><span class="p">(</span><span class="n">axes</span><span class="p">,</span> <span class="n">df</span><span class="p">,</span> <span class="n">anno_args</span><span class="p">,</span> <span class="o">**</span><span class="n">bar_args</span><span class="p">)</span>
1333
1341
  </span><span id="bar_plot-287"><a href="#bar_plot-287"><span class="linenos">287</span></a>
1334
- </span><span id="bar_plot-288"><a href="#bar_plot-288"><span class="linenos">288</span></a> <span class="k">return</span> <span class="n">axes</span>
1342
+ </span><span id="bar_plot-288"><a href="#bar_plot-288"><span class="linenos">288</span></a> <span class="c1"># --- handle index labels and rotation</span>
1343
+ </span><span id="bar_plot-289"><a href="#bar_plot-289"><span class="linenos">289</span></a> <span class="k">if</span> <span class="n">saved_strings</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
1344
+ </span><span id="bar_plot-290"><a href="#bar_plot-290"><span class="linenos">290</span></a> <span class="n">axes</span><span class="o">.</span><span class="n">set_xticks</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">saved_strings</span><span class="p">[</span><span class="mi">1</span><span class="p">])))</span>
1345
+ </span><span id="bar_plot-291"><a href="#bar_plot-291"><span class="linenos">291</span></a> <span class="n">axes</span><span class="o">.</span><span class="n">set_xticklabels</span><span class="p">(</span><span class="n">saved_strings</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
1346
+ </span><span id="bar_plot-292"><a href="#bar_plot-292"><span class="linenos">292</span></a> <span class="k">elif</span> <span class="n">saved_pi</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
1347
+ </span><span id="bar_plot-293"><a href="#bar_plot-293"><span class="linenos">293</span></a> <span class="n">set_labels</span><span class="p">(</span><span class="n">axes</span><span class="p">,</span> <span class="n">saved_pi</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">chart_args</span><span class="p">[</span><span class="s2">&quot;max_ticks&quot;</span><span class="p">])</span>
1348
+ </span><span id="bar_plot-294"><a href="#bar_plot-294"><span class="linenos">294</span></a> <span class="n">plt</span><span class="o">.</span><span class="n">xticks</span><span class="p">(</span><span class="n">rotation</span><span class="o">=</span><span class="n">chart_args</span><span class="p">[</span><span class="s2">&quot;label_rotation&quot;</span><span class="p">])</span>
1349
+ </span><span id="bar_plot-295"><a href="#bar_plot-295"><span class="linenos">295</span></a>
1350
+ </span><span id="bar_plot-296"><a href="#bar_plot-296"><span class="linenos">296</span></a> <span class="k">return</span> <span class="n">axes</span>
1335
1351
  </span></pre></div>
1336
1352
 
1337
1353
 
@@ -393,7 +393,7 @@
393
393
  <div class="attr function">
394
394
 
395
395
  <span class="def">def</span>
396
- <span class="name">fill_between_plot</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">data</span><span class="p">:</span> <span class="n">pandas</span><span class="o">.</span><span class="n">core</span><span class="o">.</span><span class="n">frame</span><span class="o">.</span><span class="n">DataFrame</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n">Unpack</span><span class="p">[</span><span class="n"><a href="#FillBetweenKwargs">FillBetweenKwargs</a></span><span class="p">]</span></span><span class="return-annotation">) -> <span class="n">matplotlib</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">_axes</span><span class="o">.</span><span class="n">Axes</span>:</span></span>
396
+ <span class="name">fill_between_plot</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">data</span><span class="p">:</span> <span class="n">pandas</span><span class="o">.</span><span class="n">DataFrame</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n">Unpack</span><span class="p">[</span><span class="n"><a href="#FillBetweenKwargs">FillBetweenKwargs</a></span><span class="p">]</span></span><span class="return-annotation">) -> <span class="n">matplotlib</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">_axes</span><span class="o">.</span><span class="n">Axes</span>:</span></span>
397
397
 
398
398
  <label class="view-source-button" for="fill_between_plot-view-source"><span>View Source</span></label>
399
399