{"id":15131191,"url":"https://github.com/psgebeline/b2_plotter","last_synced_at":"2026-01-19T05:32:44.265Z","repository":{"id":196254354,"uuid":"694957138","full_name":"psgebeline/b2_plotter","owner":"psgebeline","description":"A simple Python package for use by Belle II analysts to make various plots out of pandas dataframes and numpy arrays.","archived":false,"fork":false,"pushed_at":"2024-03-14T23:41:51.000Z","size":1049,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-13T23:34:47.148Z","etag":null,"topics":["jupyter-notebook","matplotlib","matplotlib-pyplot","numpy","pandas","pandas-dataframe","python","uproot","visualization-tools"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/b2-plotter/","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/psgebeline.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-09-22T03:38:47.000Z","updated_at":"2023-11-23T19:15:30.000Z","dependencies_parsed_at":"2023-10-16T13:30:28.966Z","dependency_job_id":"e1bb9bd0-3084-4826-b606-21ae5de363bd","html_url":"https://github.com/psgebeline/b2_plotter","commit_stats":null,"previous_names":["psgebeline/b2_plotter"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psgebeline%2Fb2_plotter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psgebeline%2Fb2_plotter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psgebeline%2Fb2_plotter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psgebeline%2Fb2_plotter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/psgebeline","download_url":"https://codeload.github.com/psgebeline/b2_plotter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247399898,"owners_count":20932876,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["jupyter-notebook","matplotlib","matplotlib-pyplot","numpy","pandas","pandas-dataframe","python","uproot","visualization-tools"],"created_at":"2024-09-26T03:24:22.813Z","updated_at":"2026-01-19T05:32:44.238Z","avatar_url":"https://github.com/psgebeline.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `b2_plotter`\n\n## Description\nThe `b2_plotter` package consists of the class Plotter(), whereby several plots based on numpy arrays and pandas dataframes can be created easily from interpretation of Belle II ROOT mDST files. \n\n## Releases\n\n### Version 4.0.5\n- Bugfix getSigEff calculation with scale parameter\n\n### Version 4.0.4\n- Add scale/bgscale functionality to plotFom, plotStep, getPurity, getSigEff (latter 2 renamed for consistency)\n\n### Version 4.0.3\n- Use numpy's std instead of mean and add parenthesis to cut f string\n\n### Version 4.0.2\n- Shift the data sidebands (when blinding is enabled) by +/- 3 sigma\n\n### Version 4.0.1\n- Remove the actual duplicate data label..\n\n### Version 4.0.0\n- Remove duplicate data label in plotData()\n\n### Version 3.0.9\n- Again bugfix data plotting\n\n### Version 3.0.8 \n- Bugfix data plotting\n\n### Version 3.0.7\n- Add signalregion and massvar to constructor call and remove it as a parameter from plotFom, getpurity, getsigeff\n- Split up plot into two functions, plotMC and plotData\n    - Add blinding functionality to plotData function\n\n### Version 3.0.6\n- Add blinding to invariant mass distributions through introduction of addBlinding parameter to initialization\n\n### Version 3.0.5\n- Update example.ipynb\n\n### Version 3.0.4\n- Bugfix missing call to colors parameter\n\n### Version 3.0.3\n- Make colors() for plot an argument with default for all MC types, so that\nit can be overridden if needed\n\n### Version 3.0.2\n- Bugfix additional root_pandas call\n\n\n### Version 3.0.1\n- Remove deprecated root_pandas library, replace with uproot\n- Update main() with a working example usage for xi03pi\n- Add unit tests\n\n### Version 2.0.9 \n- 2.0.8 bugfix (missing comma)\n\n### Version 2.0.8\n- Remove scaled signal feature -- will work on this on a later release\n- Specify the colors of plot() histograms since the signal was defaulting to grey\n\n### Version 2.0.7 \n- Bugfix to version 2.0.6, where scaled signal was not properly showing\n\n### Version 2.0.6\n- Change functions to return plots instead of displaying them, and remove interactive feature\n- Add a scaled signal histogram to the plot function\n- Update dynamic range calculation in plotFom for isGreaterThan = False cuts to prevent division by zero errors\n\n### Version 2.0.5\n- Add `cuts` argument to `plotFom`\n\n### Version 2.0.4\n- Last push didnt include changes, so include bugfix\n- Add dist/, .pytest_cache, and .ipynb_checkpoints to git ignore \n\n### Version 2.0.3\n- Bugfix call to numpy.histogram() (was called np.histogram)\n\n### Version 2.0.2\n- Implement unit tests for constructor TypeError raises\n\n### Version 2.0.1\n- Implement data plotting in plot()\n- Implement unit tests for functions in non-interactive mode\n\n### Version 1.0.9\n- Set myrange = () in plotFom to enable the dynamic range calculation from v.1.0.5 if the user does not provide a range.\n\n### Version 1.0.8\n- Implement dynamic range calculation in plotStep \n- Bugfix labels not showing up on plotFom for myrange = () (default)\n- Bugfix get_sigeff (missing period)\n\n### Version 1.0.7\n- Bugfix (remove () from numpy.size, as size is a property, not a method)\n\n### Version 1.0.6\n- Remove deprecated var total_bkg from plotFom()\n\n### Version 1.0.5 \n- Create example files for interactive session\n- Change massvar name to be consistent (massVar in get_purity but massvar in FOM, etc)\n- Implement dynamic range calculation in plotFom\n\n### Version 1.0.4\n- Bugfix main and implement a for loop to plot multiple variables\n- Create usage details in README.md\n\n### Version 1.0.3 \n- Change readme such that recent versions are at the top \n- Remove `plotBias` function, as it is very niche\n- Remove unused parameter `myrange` in get_sigeff and get_purity\n- Add main() function \n- Add interactivity boolean in constructor call to decide whether or not to save plots to a .png or show them directly\n\n### Version 1.0.2 \n- Edit README.md\n- Remove tests/ directory (unit tests are not particularly useful for this package)\n- Rename directories so imports are more intuitive\n\n### Version 1.0.1\n- Add unit tests\n- Switch backend to hatchling\n- Move metadeta to pyproject.toml and clean it up\n- Remove brackets from LICENSE.txt\n- Create tests/ directory\n\n### Version 1.0.0\nInitial launch.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsgebeline%2Fb2_plotter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpsgebeline%2Fb2_plotter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsgebeline%2Fb2_plotter/lists"}