{"id":15745158,"url":"https://github.com/jimver/prettypercentiles","last_synced_at":"2025-03-31T05:44:45.145Z","repository":{"id":104840505,"uuid":"350840651","full_name":"Jimver/prettypercentiles","owner":"Jimver","description":"Python utility for pretty percentile plots","archived":false,"fork":false,"pushed_at":"2021-05-27T10:43:11.000Z","size":3737,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-06T10:18:56.250Z","etag":null,"topics":["latency-distribution","percentiles","plot","plotter","plotting","python"],"latest_commit_sha":null,"homepage":"","language":"Python","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/Jimver.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-23T19:57:58.000Z","updated_at":"2023-07-17T10:10:42.000Z","dependencies_parsed_at":"2023-07-19T22:15:22.136Z","dependency_job_id":null,"html_url":"https://github.com/Jimver/prettypercentiles","commit_stats":{"total_commits":10,"total_committers":1,"mean_commits":10.0,"dds":0.0,"last_synced_commit":"ccaa561885ce9dc68981e8f7df167179df460ab3"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jimver%2Fprettypercentiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jimver%2Fprettypercentiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jimver%2Fprettypercentiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jimver%2Fprettypercentiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jimver","download_url":"https://codeload.github.com/Jimver/prettypercentiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246423494,"owners_count":20774796,"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":["latency-distribution","percentiles","plot","plotter","plotting","python"],"created_at":"2024-10-04T04:02:07.989Z","updated_at":"2025-03-31T05:44:45.127Z","avatar_url":"https://github.com/Jimver.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# prettypercentiles\n\nPython utility for pretty percentile plots. Ideal for plotting latency graphs from csv files.\n\n## Usage\n\nInstall Python 3 (Tested so far with 3.9)\n\n(Optional but recommended to prevent cluttering your global pip) create a virtual environment in this directory:\n\n```\npython -m venv .venv\n```\n\nActivate the virtual environment:\n\n```\n.venv\\Scripts\\activate\n```\n\nInstall dependencies from `requirements.txt`:\n\n```\npip install -r requirements.txt\n```\n\nRun plotter:\n\n```\npython prettypercentiles.py -c configs.example_config\n```\n\n## Configuration\n\nConfiguration files are located in `configs/`\n\nThe configuration file is just a Python file with variables. If you want to make your own copy the `example_config.py` to a new file in the same folder.\n\nThere are comments for each setting, the most important ones are these:\n\n### `tuple` of `(csv filename, column name, preprocessing function)`\n\nThese define where and which column to get and an optional preprocessing function to run it through\n\n### `hgrm_map`\n\nA dict which maps the above columns to labels in your plot. The key is the label in the plot and the value is the file name to the hdrhistogram output.\n\n### `label_map`\n\nA dict which maps the above columns to labels in your plot. The key is the label in the plot and the value is the [tuple](\u003c#`tuple`-of-`(csv-filename,-column-name,-preprocessing-function)`\u003e)\n\n### `combined_columns`\n\nA dict that combine several columns into one using a given function. The key is the label in the plot and the value is a list of 2 or more [tuples](\u003c#`tuple`-of-`(csv-filename,-column-name,-preprocessing-function)`\u003e)\n\nNote that the hgrm labels cannot be combined as they contain the percentiles and not the latencies.\n\n### `num_intervals`\n\nNumber that determines how far into the nines you want to plot.\nFor example: 3 means you will plot the following intervals:\n\n`[0-90, 90-99, 99-99.9]`\n\nSo the higher the number, the closer to 100% you will plot.\n\n### `font_scale`\n\nFloat that increases/decreases font size. 1.0 is normal size. For example presentations usually have higher font size compared to papers.\n\n## Output\n\nRunning example config:\n\n```\npython prettypercentiles.py -c configs.example_config\n```\n\nthe above command results in the following image in `images/example_plot.png`:\n\n![Example plot](images/example_plot.png \"Example plot\")\n\nDark mode config (white text and grid lines):\n\n```\npython prettypercentiles.py -c configs.example_config_dark\n```\n\noutput image in `images/example_plot_dark.png`:\n\n![Example plot dark](images/example_plot_dark.png \"Example plot dark\")\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjimver%2Fprettypercentiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjimver%2Fprettypercentiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjimver%2Fprettypercentiles/lists"}