maidr 1.10.0__tar.gz → 1.11.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- maidr-1.11.0/.github/workflows/claude.yml +50 -0
- {maidr-1.10.0 → maidr-1.11.0}/CHANGELOG.md +8 -0
- {maidr-1.10.0 → maidr-1.11.0}/PKG-INFO +1 -1
- {maidr-1.10.0 → maidr-1.11.0}/docs/examples.qmd +119 -55
- {maidr-1.10.0 → maidr-1.11.0}/example/bar/example_bar_plot.ipynb +25 -18
- maidr-1.11.0/example/bar/matplotlib/example_mpl_bar_plot.py +21 -0
- maidr-1.11.0/example/bar/seaborn/example_sns_bar_plot.py +22 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/box/example_box_plot.ipynb +53 -24
- {maidr-1.10.0 → maidr-1.11.0}/example/box/matplotlib/example_mpl_box.py +16 -10
- maidr-1.11.0/example/box/seaborn/example_sns_box.py +44 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/candle_stick/legacy_candlestick_example.py +7 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/candle_stick/mplfinance_candlestick_example.py +19 -1
- {maidr-1.10.0 → maidr-1.11.0}/example/count/example_count_plot.ipynb +11 -6
- maidr-1.11.0/example/count/seaborn/example_sns_count_plot.py +20 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/dodged/matplotlib/example_mpl_dodged.py +5 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/dodged/seaborn/example_sns_dodged.py +4 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/facet-subplots/matplotlib/example_mpl_facet_bar_plot.py +4 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/facet-subplots/matplotlib/example_mpl_facet_combined_plot.py +7 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/facet-subplots/seaborn/example_sns_facet_bar_plot.py +4 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/facet-subplots/seaborn/example_sns_facet_combined_plot.py +9 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/flask/test_flask_app.py +9 -5
- {maidr-1.10.0 → maidr-1.11.0}/example/heatmap/example_heatmap_plot.ipynb +21 -10
- {maidr-1.10.0 → maidr-1.11.0}/example/heatmap/matplotlib/example_mpl_heatmap.py +4 -0
- maidr-1.11.0/example/heatmap/seaborn/example_sns_heatmap.py +21 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/histogram/example_histogram_plot.ipynb +54 -22
- maidr-1.11.0/example/histogram/matplotlib/example_mpl_hist.py +25 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/histogram/matplotlib/histogram_with_kde_matplotlib.py +7 -0
- maidr-1.11.0/example/histogram/seaborn/example_sns_hist.py +26 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/histogram/seaborn/histogram_with_kde_seaborn.py +7 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/kde/example_kde_plots.ipynb +79 -41
- {maidr-1.10.0 → maidr-1.11.0}/example/kde/matplotlib/multiple_kde_matplotlib.py +17 -10
- {maidr-1.10.0 → maidr-1.11.0}/example/kde/matplotlib/single_kde_matplotlib.py +15 -8
- {maidr-1.10.0 → maidr-1.11.0}/example/kde/seaborn/multiple_kde_seaborn.py +17 -10
- maidr-1.11.0/example/kde/seaborn/single_kde_seaborn.py +23 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/line/example_line_plot.ipynb +28 -18
- {maidr-1.10.0 → maidr-1.11.0}/example/line/matplotlib/example_mpl_line.py +12 -7
- {maidr-1.10.0 → maidr-1.11.0}/example/line/seaborn/example_sns_line.py +10 -5
- {maidr-1.10.0 → maidr-1.11.0}/example/multilayer/example_mpl_multilayer.py +5 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/multilayer/example_multilayer_plot.ipynb +8 -4
- {maidr-1.10.0 → maidr-1.11.0}/example/multiline/example_multiline_plot.ipynb +25 -20
- {maidr-1.10.0 → maidr-1.11.0}/example/multiline/matplotlib/example_mpl_multiline.py +13 -11
- {maidr-1.10.0 → maidr-1.11.0}/example/multiline/seaborn/example_sns_multiline.py +10 -5
- {maidr-1.10.0 → maidr-1.11.0}/example/multipanel/example_multipanel_plot.ipynb +22 -7
- {maidr-1.10.0 → maidr-1.11.0}/example/multipanel/matplotlib/example_mpl_multipanel.py +8 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/multipanel/seaborn/example_sns_multipanel.py +8 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/reg/example_reg_plots.ipynb +25 -14
- {maidr-1.10.0 → maidr-1.11.0}/example/reg/matplotlib/example_matplotlib_smooth_plot.py +5 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/reg/seaborn/example_sns_reg.py +10 -4
- {maidr-1.10.0 → maidr-1.11.0}/example/scatter/example_scatter_plot.ipynb +28 -20
- maidr-1.11.0/example/scatter/matplotlib/example_mpl_scatter.py +24 -0
- maidr-1.11.0/example/scatter/seaborn/example_sns_scatter.py +25 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/shiny/example_shiny_scatter.py +6 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/stacked/matplotlib/example_mpl_stacked.py +4 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/stacked/seaborn/example_sns_stacked.py +4 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/streamlit/example_streamlit_app.py +16 -9
- {maidr-1.10.0 → maidr-1.11.0}/maidr/__init__.py +1 -1
- {maidr-1.10.0 → maidr-1.11.0}/maidr/core/enum/maidr_key.py +1 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/core/plot/candlestick.py +14 -14
- {maidr-1.10.0 → maidr-1.11.0}/maidr/core/plot/maidr_plot.py +11 -2
- {maidr-1.10.0 → maidr-1.11.0}/maidr/core/plot/mplfinance_barplot.py +5 -1
- {maidr-1.10.0 → maidr-1.11.0}/maidr/core/plot/mplfinance_lineplot.py +5 -1
- {maidr-1.10.0 → maidr-1.11.0}/maidr/util/datetime_conversion.py +14 -11
- maidr-1.11.0/maidr/util/format_config.py +679 -0
- maidr-1.11.0/maidr/util/mixin/__init__.py +19 -0
- maidr-1.11.0/maidr/util/mixin/format_extractor_mixin.py +83 -0
- {maidr-1.10.0 → maidr-1.11.0}/pyproject.toml +1 -1
- {maidr-1.10.0 → maidr-1.11.0}/uv.lock +1 -1
- maidr-1.10.0/example/bar/matplotlib/example_mpl_bar_plot.py +0 -18
- maidr-1.10.0/example/bar/seaborn/example_sns_bar_plot.py +0 -19
- maidr-1.10.0/example/box/seaborn/example_sns_box.py +0 -42
- maidr-1.10.0/example/count/seaborn/example_sns_count_plot.py +0 -16
- maidr-1.10.0/example/heatmap/seaborn/example_sns_heatmap.py +0 -16
- maidr-1.10.0/example/histogram/matplotlib/example_mpl_hist.py +0 -19
- maidr-1.10.0/example/histogram/seaborn/example_sns_hist.py +0 -21
- maidr-1.10.0/example/kde/seaborn/single_kde_seaborn.py +0 -15
- maidr-1.10.0/example/scatter/matplotlib/example_mpl_scatter.py +0 -20
- maidr-1.10.0/example/scatter/seaborn/example_sns_scatter.py +0 -21
- maidr-1.10.0/maidr/util/mixin/__init__.py +0 -8
- {maidr-1.10.0 → maidr-1.11.0}/.commitlintrc.cjs +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/.editorconfig +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/.github/copilot-instructions.md +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/.github/workflows/ci.yml +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/.github/workflows/docs.yml +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/.github/workflows/release.yml +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/.gitignore +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/.pre-commit-config.yaml +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/.vscode/extensions.json +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/.vscode/settings.json +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/CONDUCT.md +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/CONTRIBUTING.md +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/LICENSE +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/README.md +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/docs/.gitignore +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/docs/CNAME +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/docs/_environment +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/docs/_extensions/machow/interlinks/.gitignore +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/docs/_extensions/machow/interlinks/_extension.yml +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/docs/_extensions/machow/interlinks/interlinks.lua +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/docs/_extensions/shafayetShafee/line-highlight/_extension.yml +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/docs/_extensions/shafayetShafee/line-highlight/line-highlight.lua +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/docs/_extensions/shafayetShafee/line-highlight/resources/css/line-highlight.css +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/docs/_extensions/shafayetShafee/line-highlight/resources/js/line-highlight.js +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/docs/_quarto.yml +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/docs/index.qmd +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/docs/styles.css +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/candle_stick/test_data_daily_current_year.csv +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/candle_stick/test_data_daily_mixed_years.csv +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/candle_stick/test_data_hourly.csv +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/candle_stick/test_data_minute.csv +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/candle_stick/test_data_weekly.csv +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/candle_stick/volcandat.csv +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/example/quarto/demo.qmd +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/api.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/core/__init__.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/core/context_manager.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/core/enum/__init__.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/core/enum/library.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/core/enum/plot_type.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/core/enum/smooth_keywords.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/core/figure_manager.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/core/maidr.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/core/plot/__init__.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/core/plot/barplot.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/core/plot/boxplot.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/core/plot/grouped_barplot.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/core/plot/heatmap.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/core/plot/histogram.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/core/plot/lineplot.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/core/plot/maidr_plot_factory.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/core/plot/regplot.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/core/plot/scatterplot.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/exception/__init__.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/exception/extraction_error.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/patch/__init__.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/patch/barplot.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/patch/boxplot.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/patch/candlestick.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/patch/clear.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/patch/common.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/patch/heatmap.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/patch/highlight.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/patch/histogram.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/patch/kdeplot.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/patch/lineplot.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/patch/mplfinance.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/patch/regplot.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/patch/scatterplot.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/util/__init__.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/util/dedup_utils.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/util/environment.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/util/mixin/extractor_mixin.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/util/mixin/merger_mixin.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/util/mplfinance_utils.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/util/plot_detection.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/util/regression_line_utils.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/util/svg_utils.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/widget/__init__.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/maidr/widget/shiny.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/tests/__init__.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/tests/conftest.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/tests/core/__init__.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/tests/core/enum/__init__.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/tests/core/plot/__init__.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/tests/core/test_figure_manager.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/tests/core/test_maidr_plot.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/tests/core/test_maidr_plot_factory.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/tests/fixture/__init__.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/tests/fixture/library_factory.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/tests/fixture/matplotlib_factory.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/tests/fixture/seaborn_factory.py +0 -0
- {maidr-1.10.0 → maidr-1.11.0}/tox.ini +0 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
name: Claude Code
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
issue_comment:
|
|
5
|
+
types: [created]
|
|
6
|
+
pull_request_review_comment:
|
|
7
|
+
types: [created]
|
|
8
|
+
issues:
|
|
9
|
+
types: [opened, assigned]
|
|
10
|
+
pull_request_review:
|
|
11
|
+
types: [submitted]
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
claude:
|
|
15
|
+
if: |
|
|
16
|
+
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
|
|
17
|
+
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
|
|
18
|
+
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
|
|
19
|
+
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
permissions:
|
|
22
|
+
contents: read
|
|
23
|
+
pull-requests: read
|
|
24
|
+
issues: read
|
|
25
|
+
id-token: write
|
|
26
|
+
actions: read # Required for Claude to read CI results on PRs
|
|
27
|
+
steps:
|
|
28
|
+
- name: Checkout repository
|
|
29
|
+
uses: actions/checkout@v4
|
|
30
|
+
with:
|
|
31
|
+
fetch-depth: 1
|
|
32
|
+
|
|
33
|
+
- name: Run Claude Code
|
|
34
|
+
id: claude
|
|
35
|
+
uses: anthropics/claude-code-action@v1
|
|
36
|
+
with:
|
|
37
|
+
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
|
|
38
|
+
|
|
39
|
+
# This is an optional setting that allows Claude to read CI results on PRs
|
|
40
|
+
additional_permissions: |
|
|
41
|
+
actions: read
|
|
42
|
+
|
|
43
|
+
# Optional: Give a custom prompt to Claude. If this is not specified, Claude will perform the instructions specified in the comment that tagged it.
|
|
44
|
+
# prompt: 'Update the pull request description to include a summary of changes.'
|
|
45
|
+
|
|
46
|
+
# Optional: Add claude_args to customize behavior and configuration
|
|
47
|
+
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
|
|
48
|
+
# or https://docs.claude.com/en/docs/claude-code/cli-reference for available options
|
|
49
|
+
# claude_args: '--allowed-tools Bash(gh pr:*)'
|
|
50
|
+
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
## v1.11.0 (2026-02-04)
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
- Include format configuration from plot api ([#262](https://github.com/xability/py-maidr/pull/262),
|
|
9
|
+
[`59eb82f`](https://github.com/xability/py-maidr/commit/59eb82f880d370eab4cf437e22dee3cd4856158c))
|
|
10
|
+
|
|
11
|
+
|
|
4
12
|
## v1.10.0 (2026-01-31)
|
|
5
13
|
|
|
6
14
|
### Features
|
|
@@ -33,17 +33,18 @@ import maidr #<<
|
|
|
33
33
|
penguins = sns.load_dataset("penguins")
|
|
34
34
|
|
|
35
35
|
# Create a bar plot showing the average body mass of penguins by species
|
|
36
|
-
plt.
|
|
36
|
+
fig, ax = plt.subplots(figsize=(6, 6))
|
|
37
37
|
|
|
38
38
|
# Assign the plot to a variable #<<
|
|
39
39
|
bar_plot = sns.barplot( #<<
|
|
40
|
-
x="species", y="body_mass_g", data=penguins, errorbar="sd", palette="Blues_d"
|
|
40
|
+
x="species", y="body_mass_g", data=penguins, errorbar="sd", palette="Blues_d", ax=ax
|
|
41
41
|
)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
ax.set_title("Average Body Mass of Penguins by Species")
|
|
43
|
+
ax.set_xlabel("Species")
|
|
44
|
+
ax.set_ylabel("Body Mass (g)")
|
|
45
45
|
|
|
46
|
-
#
|
|
46
|
+
# Add number formatter for better screen reader output
|
|
47
|
+
ax.yaxis.set_major_formatter("{x:,.0f}")
|
|
47
48
|
|
|
48
49
|
# Use maidr.show() to display your plot #<<
|
|
49
50
|
maidr.show(bar_plot) #<<
|
|
@@ -65,14 +66,16 @@ import maidr #<<
|
|
|
65
66
|
titanic = sns.load_dataset("titanic")
|
|
66
67
|
|
|
67
68
|
# Create a count plot
|
|
68
|
-
plt.
|
|
69
|
-
count_plot = sns.countplot(x="class", data=titanic, palette="viridis") #<<
|
|
69
|
+
fig, ax = plt.subplots(figsize=(6, 6))
|
|
70
|
+
count_plot = sns.countplot(x="class", data=titanic, palette="viridis", ax=ax) #<<
|
|
70
71
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
ax.set_title("Passenger Class Distribution on the Titanic")
|
|
73
|
+
ax.set_xlabel("Passenger Class")
|
|
74
|
+
ax.set_ylabel("Count")
|
|
75
|
+
|
|
76
|
+
# Add number formatter for better screen reader output
|
|
77
|
+
ax.yaxis.set_major_formatter("{x:.0f}")
|
|
74
78
|
|
|
75
|
-
# plt.show()
|
|
76
79
|
maidr.show(count_plot) #<<
|
|
77
80
|
```
|
|
78
81
|
|
|
@@ -112,6 +115,9 @@ ax.set_ylabel("Average Body Mass")
|
|
|
112
115
|
ax.set_title("Number of penguins with above average body mass")
|
|
113
116
|
ax.legend(loc="upper right")
|
|
114
117
|
|
|
118
|
+
# Add number formatter for better screen reader output
|
|
119
|
+
ax.yaxis.set_major_formatter("{x:.0f}")
|
|
120
|
+
|
|
115
121
|
maidr.show(p) #<<
|
|
116
122
|
```
|
|
117
123
|
|
|
@@ -156,6 +162,9 @@ ax.set_ylabel("Weight")
|
|
|
156
162
|
ax.set_title("Dodged Bar Plot: Penguin Weight Counts")
|
|
157
163
|
ax.legend(loc="upper right")
|
|
158
164
|
|
|
165
|
+
# Add number formatter for better screen reader output
|
|
166
|
+
ax.yaxis.set_major_formatter("{x:.0f}")
|
|
167
|
+
|
|
159
168
|
# Show plot using maidr.show
|
|
160
169
|
maidr.show(p) #<<
|
|
161
170
|
```
|
|
@@ -179,15 +188,18 @@ iris = sns.load_dataset("iris")
|
|
|
179
188
|
petal_lengths = iris["petal_length"]
|
|
180
189
|
|
|
181
190
|
# Plot a histogram of the petal lengths
|
|
182
|
-
plt.
|
|
191
|
+
fig, ax = plt.subplots(figsize=(6, 6))
|
|
183
192
|
|
|
184
|
-
hist_plot = sns.histplot(petal_lengths, kde=True, color="blue", binwidth=0.5) #<<
|
|
193
|
+
hist_plot = sns.histplot(petal_lengths, kde=True, color="blue", binwidth=0.5, ax=ax) #<<
|
|
185
194
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
195
|
+
ax.set_title("Petal Lengths in Iris Dataset")
|
|
196
|
+
ax.set_xlabel("Petal Length (cm)")
|
|
197
|
+
ax.set_ylabel("Frequency")
|
|
198
|
+
|
|
199
|
+
# Add number formatters for better screen reader output
|
|
200
|
+
ax.xaxis.set_major_formatter("{x:.1f}")
|
|
201
|
+
ax.yaxis.set_major_formatter("{x:.0f}")
|
|
189
202
|
|
|
190
|
-
# plt.show()
|
|
191
203
|
maidr.show(hist_plot) #<<
|
|
192
204
|
```
|
|
193
205
|
|
|
@@ -208,14 +220,17 @@ np.random.seed(42)
|
|
|
208
220
|
data = np.random.randn(500)
|
|
209
221
|
|
|
210
222
|
# Create a KDE plot
|
|
211
|
-
plt.
|
|
212
|
-
kde_plot = sns.kdeplot(data,
|
|
223
|
+
fig, ax = plt.subplots(figsize=(6, 6))
|
|
224
|
+
kde_plot = sns.kdeplot(data, color="blue", ax=ax) #<<
|
|
213
225
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
226
|
+
ax.set_title("KDE Plot of Random Data")
|
|
227
|
+
ax.set_xlabel("Value")
|
|
228
|
+
ax.set_ylabel("Density")
|
|
229
|
+
|
|
230
|
+
# Add number formatters for better screen reader output
|
|
231
|
+
ax.xaxis.set_major_formatter("{x:.1f}")
|
|
232
|
+
ax.yaxis.set_major_formatter("{x:.3f}")
|
|
217
233
|
|
|
218
|
-
# plt.show()
|
|
219
234
|
maidr.show(kde_plot) #<<
|
|
220
235
|
```
|
|
221
236
|
|
|
@@ -239,7 +254,7 @@ tips = sns.load_dataset("tips") #<<
|
|
|
239
254
|
subset_data = tips[tips["day"] == "Thur"]
|
|
240
255
|
|
|
241
256
|
# Create a line plot
|
|
242
|
-
plt.
|
|
257
|
+
fig, ax = plt.subplots(figsize=(6, 6))
|
|
243
258
|
line_plot = sns.lineplot( #<<
|
|
244
259
|
data=subset_data,
|
|
245
260
|
x="total_bill",
|
|
@@ -247,12 +262,16 @@ line_plot = sns.lineplot( #<<
|
|
|
247
262
|
markers=True,
|
|
248
263
|
style="day",
|
|
249
264
|
legend=False,
|
|
265
|
+
ax=ax,
|
|
250
266
|
)
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
267
|
+
ax.set_title("Tips vs Total Bill (Thursday)")
|
|
268
|
+
ax.set_xlabel("Total Bill")
|
|
269
|
+
ax.set_ylabel("Tip")
|
|
270
|
+
|
|
271
|
+
# Add currency formatters for better screen reader output
|
|
272
|
+
ax.xaxis.set_major_formatter("${x:.2f}")
|
|
273
|
+
ax.yaxis.set_major_formatter("${x:.2f}")
|
|
254
274
|
|
|
255
|
-
# plt.show()
|
|
256
275
|
maidr.show(line_plot) #<<
|
|
257
276
|
```
|
|
258
277
|
|
|
@@ -283,17 +302,21 @@ data = pd.DataFrame(
|
|
|
283
302
|
)
|
|
284
303
|
|
|
285
304
|
# Create the plot
|
|
286
|
-
plt.
|
|
305
|
+
fig, ax = plt.subplots(figsize=(6, 6))
|
|
287
306
|
|
|
288
307
|
# Use seaborn lineplot for multiple lines
|
|
289
308
|
lineplot = sns.lineplot(
|
|
290
|
-
x="x", y="y", hue="series", style="series", markers=True, dashes=True, data=data
|
|
309
|
+
x="x", y="y", hue="series", style="series", markers=True, dashes=True, data=data, ax=ax
|
|
291
310
|
)
|
|
292
311
|
|
|
293
312
|
# Customize the plot
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
313
|
+
ax.set_title("Seaborn Multiline Plot")
|
|
314
|
+
ax.set_xlabel("X values")
|
|
315
|
+
ax.set_ylabel("Y values")
|
|
316
|
+
|
|
317
|
+
# Add number formatters for better screen reader output
|
|
318
|
+
ax.xaxis.set_major_formatter("{x:.0f}")
|
|
319
|
+
ax.yaxis.set_major_formatter("{x:.0f}")
|
|
297
320
|
|
|
298
321
|
# Display the plot using maidr
|
|
299
322
|
maidr.show(lineplot) #<<
|
|
@@ -314,9 +337,14 @@ import maidr #<<
|
|
|
314
337
|
glue = sns.load_dataset("glue").pivot(index="Model", columns="Task", values="Score")
|
|
315
338
|
|
|
316
339
|
# Plot a heatmap
|
|
317
|
-
plt.
|
|
318
|
-
heatmap = sns.heatmap(glue, annot=True, fill_label="Score") #<<
|
|
319
|
-
|
|
340
|
+
fig, ax = plt.subplots(figsize=(8, 8))
|
|
341
|
+
heatmap = sns.heatmap(glue, annot=True, fill_label="Score", ax=ax) #<<
|
|
342
|
+
ax.set_title("Model Scores by Task")
|
|
343
|
+
|
|
344
|
+
# Add number formatter for colorbar for better screen reader output
|
|
345
|
+
cbar = heatmap.collections[0].colorbar
|
|
346
|
+
if cbar:
|
|
347
|
+
cbar.ax.yaxis.set_major_formatter("{x:.1f}")
|
|
320
348
|
|
|
321
349
|
# Show the plot
|
|
322
350
|
# plt.show()
|
|
@@ -339,11 +367,14 @@ import maidr #<<
|
|
|
339
367
|
iris = load_dataset("iris")
|
|
340
368
|
|
|
341
369
|
# Create the horizontal boxplot
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
370
|
+
fig, ax = plt.subplots()
|
|
371
|
+
horz_box_plot = sns.boxplot(x="petal_length", y="species", data=iris, orient="h", ax=ax) #<<
|
|
372
|
+
ax.set_ylabel("Species")
|
|
373
|
+
ax.set_xlabel("Petal Length (cm)")
|
|
374
|
+
ax.set_title("Petal Length by Species from Iris Dataset")
|
|
375
|
+
|
|
376
|
+
# Add number formatter for better screen reader output
|
|
377
|
+
ax.xaxis.set_major_formatter("{x:.1f}")
|
|
347
378
|
|
|
348
379
|
# Show the plot
|
|
349
380
|
maidr.show(horz_box_plot) #<<
|
|
@@ -360,17 +391,21 @@ import seaborn as sns
|
|
|
360
391
|
import maidr #<<
|
|
361
392
|
|
|
362
393
|
# Create a scatter plot
|
|
394
|
+
fig, ax = plt.subplots()
|
|
363
395
|
scatter_plot = sns.scatterplot( #<<
|
|
364
|
-
data=iris, x="sepal_length", y="sepal_width", hue="species"
|
|
396
|
+
data=iris, x="sepal_length", y="sepal_width", hue="species", ax=ax
|
|
365
397
|
)
|
|
366
398
|
|
|
367
|
-
# Adding title and labels
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
399
|
+
# Adding title and labels
|
|
400
|
+
ax.set_title("Iris Sepal Length vs Sepal Width")
|
|
401
|
+
ax.set_xlabel("Sepal Length (cm)")
|
|
402
|
+
ax.set_ylabel("Sepal Width (cm)")
|
|
403
|
+
|
|
404
|
+
# Add number formatters for better screen reader output
|
|
405
|
+
ax.xaxis.set_major_formatter("{x:.1f}")
|
|
406
|
+
ax.yaxis.set_major_formatter("{x:.1f}")
|
|
371
407
|
|
|
372
408
|
# Show the plot
|
|
373
|
-
# plt.show()
|
|
374
409
|
maidr.show(scatter_plot) #<<
|
|
375
410
|
```
|
|
376
411
|
|
|
@@ -392,19 +427,23 @@ x = np.linspace(0, 10, 50)
|
|
|
392
427
|
y = 2 * x + 1 + np.random.normal(0, 2, 50)
|
|
393
428
|
|
|
394
429
|
# Create a regression plot
|
|
395
|
-
plt.
|
|
430
|
+
fig, ax = plt.subplots(figsize=(6, 6))
|
|
396
431
|
reg_plot = sns.regplot(
|
|
397
432
|
x=x,
|
|
398
433
|
y=y,
|
|
399
434
|
scatter_kws={"s": 50, "alpha": 0.7},
|
|
400
435
|
line_kws={"color": "red", "lw": 2},
|
|
436
|
+
ax=ax,
|
|
401
437
|
) #<<
|
|
402
438
|
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
439
|
+
ax.set_title("Regression Plot with Fitted Line")
|
|
440
|
+
ax.set_xlabel("X values")
|
|
441
|
+
ax.set_ylabel("Y values")
|
|
442
|
+
|
|
443
|
+
# Add number formatters for better screen reader output
|
|
444
|
+
ax.xaxis.set_major_formatter("{x:.1f}")
|
|
445
|
+
ax.yaxis.set_major_formatter("{x:.2f}")
|
|
406
446
|
|
|
407
|
-
# plt.show()
|
|
408
447
|
maidr.show(reg_plot) #<<
|
|
409
448
|
```
|
|
410
449
|
|
|
@@ -448,6 +487,11 @@ lines1, labels1 = ax1.get_legend_handles_labels()
|
|
|
448
487
|
lines2, labels2 = ax2.get_legend_handles_labels()
|
|
449
488
|
ax1.legend(lines1 + lines2, labels1 + labels2, loc="upper left")
|
|
450
489
|
|
|
490
|
+
# Add number formatters for better screen reader output
|
|
491
|
+
ax1.xaxis.set_major_formatter("{x:.0f}")
|
|
492
|
+
ax1.yaxis.set_major_formatter("{x:.0f}")
|
|
493
|
+
ax2.yaxis.set_major_formatter("{x:.0f}")
|
|
494
|
+
|
|
451
495
|
# Adjust layout
|
|
452
496
|
fig.tight_layout()
|
|
453
497
|
|
|
@@ -508,6 +552,12 @@ axs[2].set_title("Bar Plot 2: Random Values") # Fixed the typo in the title
|
|
|
508
552
|
axs[2].set_xlabel("Categories")
|
|
509
553
|
axs[2].set_ylabel("Values")
|
|
510
554
|
|
|
555
|
+
# Add number formatters for better screen reader output
|
|
556
|
+
axs[0].xaxis.set_major_formatter("{x:.0f}")
|
|
557
|
+
axs[0].yaxis.set_major_formatter("{x:.0f}")
|
|
558
|
+
axs[1].yaxis.set_major_formatter("{x:.1f}")
|
|
559
|
+
axs[2].yaxis.set_major_formatter("{x:.1f}")
|
|
560
|
+
|
|
511
561
|
# Adjust layout to prevent overlap
|
|
512
562
|
plt.tight_layout()
|
|
513
563
|
|
|
@@ -567,6 +617,10 @@ fig.text(
|
|
|
567
617
|
# Add a common title
|
|
568
618
|
fig.suptitle("Facet Plot: Bar Charts by Condition", fontsize=16)
|
|
569
619
|
|
|
620
|
+
# Add number formatters for better screen reader output
|
|
621
|
+
for ax in axs:
|
|
622
|
+
ax.yaxis.set_major_formatter("{x:.1f}")
|
|
623
|
+
|
|
570
624
|
# Adjust layout
|
|
571
625
|
plt.tight_layout(rect=(0.08, 0.08, 0.98, 0.95))
|
|
572
626
|
|
|
@@ -581,6 +635,7 @@ maidr.show(fig) #<<
|
|
|
581
635
|
|
|
582
636
|
import mplfinance as mpf
|
|
583
637
|
import pandas as pd
|
|
638
|
+
import matplotlib.dates as mdates
|
|
584
639
|
|
|
585
640
|
import maidr #<<
|
|
586
641
|
|
|
@@ -588,17 +643,26 @@ import maidr #<<
|
|
|
588
643
|
daily = pd.read_csv("../example/candle_stick/volcandat.csv", index_col=0, parse_dates=True)
|
|
589
644
|
|
|
590
645
|
# Create the candlestick chart with moving averages and volume
|
|
591
|
-
fig,
|
|
646
|
+
fig, axlist = mpf.plot(
|
|
592
647
|
daily,
|
|
593
648
|
type="candle",
|
|
594
649
|
volume=True,
|
|
595
650
|
mav = (3,6,9),
|
|
596
651
|
returnfig=True,
|
|
597
|
-
ylabel="Price
|
|
652
|
+
ylabel="Price",
|
|
598
653
|
ylabel_lower="Volume",
|
|
599
654
|
xlabel="Date",
|
|
600
655
|
title="Stock Price with Volume",
|
|
601
656
|
) #<<
|
|
657
|
+
|
|
658
|
+
# Add formatters for better screen reader output
|
|
659
|
+
# Price axis - Currency format
|
|
660
|
+
axlist[0].yaxis.set_major_formatter("${x:,.2f}")
|
|
661
|
+
# Date axis - Custom date format like "Nov 18, 2016"
|
|
662
|
+
axlist[0].xaxis.set_major_formatter(mdates.DateFormatter("%b %d, %Y"))
|
|
663
|
+
# Volume axis - Integer with thousands separator
|
|
664
|
+
axlist[2].yaxis.set_major_formatter("{x:,.0f}")
|
|
665
|
+
|
|
602
666
|
fig.tight_layout()
|
|
603
667
|
|
|
604
668
|
# Display with maidr
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
21
|
"cell_type": "code",
|
|
22
|
-
"execution_count":
|
|
22
|
+
"execution_count": null,
|
|
23
23
|
"metadata": {},
|
|
24
24
|
"outputs": [
|
|
25
25
|
{
|
|
@@ -48,29 +48,32 @@
|
|
|
48
48
|
}
|
|
49
49
|
],
|
|
50
50
|
"source": [
|
|
51
|
-
"\n",
|
|
52
51
|
"import matplotlib.pyplot as plt\n",
|
|
53
|
-
"import maidr\n",
|
|
54
52
|
"import seaborn as sns\n",
|
|
55
53
|
"\n",
|
|
54
|
+
"import maidr\n",
|
|
55
|
+
"\n",
|
|
56
56
|
"# Load dataset\n",
|
|
57
57
|
"tips = sns.load_dataset(\"tips\")\n",
|
|
58
58
|
"\n",
|
|
59
59
|
"# Create a bar plot\n",
|
|
60
60
|
"cut_counts = tips[\"day\"].value_counts()\n",
|
|
61
|
-
"plt.
|
|
62
|
-
"b_plot =
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
61
|
+
"fig, ax = plt.subplots(figsize=(10, 6))\n",
|
|
62
|
+
"b_plot = ax.bar(cut_counts.index, list(cut_counts.values), color=\"skyblue\")\n",
|
|
63
|
+
"ax.set_title(\"The Number of Tips by Day\")\n",
|
|
64
|
+
"ax.set_xlabel(\"Day\")\n",
|
|
65
|
+
"ax.set_ylabel(\"Count\")\n",
|
|
66
|
+
"\n",
|
|
67
|
+
"# Add number formatter to y-axis for better screen reader output\n",
|
|
68
|
+
"# This formats values with no decimal places (integer counts)\n",
|
|
69
|
+
"ax.yaxis.set_major_formatter(\"{x:.2f}\")\n",
|
|
66
70
|
"\n",
|
|
67
|
-
"
|
|
68
|
-
"maidr.show(b_plot)"
|
|
71
|
+
"maidr.show(b_plot)\n"
|
|
69
72
|
]
|
|
70
73
|
},
|
|
71
74
|
{
|
|
72
75
|
"cell_type": "code",
|
|
73
|
-
"execution_count":
|
|
76
|
+
"execution_count": null,
|
|
74
77
|
"metadata": {},
|
|
75
78
|
"outputs": [
|
|
76
79
|
{
|
|
@@ -91,22 +94,26 @@
|
|
|
91
94
|
],
|
|
92
95
|
"source": [
|
|
93
96
|
"import matplotlib.pyplot as plt\n",
|
|
94
|
-
"import maidr\n",
|
|
95
97
|
"import seaborn as sns\n",
|
|
96
98
|
"\n",
|
|
99
|
+
"import maidr\n",
|
|
100
|
+
"\n",
|
|
97
101
|
"# Load the penguins dataset\n",
|
|
98
102
|
"penguins = sns.load_dataset(\"penguins\")\n",
|
|
99
103
|
"\n",
|
|
100
104
|
"# Create a bar plot showing the average body mass of penguins by species\n",
|
|
101
|
-
"plt.
|
|
105
|
+
"fig, ax = plt.subplots(figsize=(10, 6))\n",
|
|
102
106
|
"b_plot = sns.barplot(\n",
|
|
103
|
-
" x=\"species\", y=\"body_mass_g\", data=penguins, errorbar=\"sd\", palette=\"Blues_d\"\n",
|
|
107
|
+
" x=\"species\", y=\"body_mass_g\", data=penguins, errorbar=\"sd\", palette=\"Blues_d\", ax=ax\n",
|
|
104
108
|
")\n",
|
|
105
|
-
"
|
|
106
|
-
"
|
|
107
|
-
"
|
|
109
|
+
"ax.set_title(\"Average Body Mass of Penguins by Species\")\n",
|
|
110
|
+
"ax.set_xlabel(\"Species\")\n",
|
|
111
|
+
"ax.set_ylabel(\"Body Mass (g)\")\n",
|
|
112
|
+
"\n",
|
|
113
|
+
"# Add number formatter to y-axis for better screen reader output\n",
|
|
114
|
+
"# Body mass values with thousands separator (e.g., \"4,500\")\n",
|
|
115
|
+
"ax.yaxis.set_major_formatter(\"{x:,.0f}\")\n",
|
|
108
116
|
"\n",
|
|
109
|
-
"# plt.show()\n",
|
|
110
117
|
"maidr.show(b_plot)\n"
|
|
111
118
|
]
|
|
112
119
|
},
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import matplotlib.pyplot as plt
|
|
2
|
+
import seaborn as sns
|
|
3
|
+
|
|
4
|
+
import maidr
|
|
5
|
+
|
|
6
|
+
# Load dataset
|
|
7
|
+
tips = sns.load_dataset("tips")
|
|
8
|
+
|
|
9
|
+
# Create a bar plot
|
|
10
|
+
cut_counts = tips["day"].value_counts()
|
|
11
|
+
fig, ax = plt.subplots(figsize=(10, 6))
|
|
12
|
+
b_plot = ax.bar(cut_counts.index, list(cut_counts.values), color="skyblue")
|
|
13
|
+
ax.set_title("The Number of Tips by Day")
|
|
14
|
+
ax.set_xlabel("Day")
|
|
15
|
+
ax.set_ylabel("Count")
|
|
16
|
+
|
|
17
|
+
# Add number formatter to y-axis for better screen reader output
|
|
18
|
+
# This formats values with no decimal places (integer counts)
|
|
19
|
+
ax.yaxis.set_major_formatter("{x:.2f}")
|
|
20
|
+
|
|
21
|
+
maidr.show(b_plot)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import matplotlib.pyplot as plt
|
|
2
|
+
import seaborn as sns
|
|
3
|
+
|
|
4
|
+
import maidr
|
|
5
|
+
|
|
6
|
+
# Load the penguins dataset
|
|
7
|
+
penguins = sns.load_dataset("penguins")
|
|
8
|
+
|
|
9
|
+
# Create a bar plot showing the average body mass of penguins by species
|
|
10
|
+
fig, ax = plt.subplots(figsize=(10, 6))
|
|
11
|
+
b_plot = sns.barplot(
|
|
12
|
+
x="species", y="body_mass_g", data=penguins, errorbar="sd", palette="Blues_d", ax=ax
|
|
13
|
+
)
|
|
14
|
+
ax.set_title("Average Body Mass of Penguins by Species")
|
|
15
|
+
ax.set_xlabel("Species")
|
|
16
|
+
ax.set_ylabel("Body Mass (g)")
|
|
17
|
+
|
|
18
|
+
# Add number formatter to y-axis for better screen reader output
|
|
19
|
+
# Body mass values with thousands separator (e.g., "4,500")
|
|
20
|
+
ax.yaxis.set_major_formatter("{x:,.0f}")
|
|
21
|
+
|
|
22
|
+
maidr.show(b_plot)
|