Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jimver/prettypercentiles
Python utility for pretty percentile plots
https://github.com/jimver/prettypercentiles
latency-distribution percentiles plot plotter plotting python
Last synced: 21 days ago
JSON representation
Python utility for pretty percentile plots
- Host: GitHub
- URL: https://github.com/jimver/prettypercentiles
- Owner: Jimver
- License: mit
- Created: 2021-03-23T19:57:58.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2021-05-27T10:43:11.000Z (over 3 years ago)
- Last Synced: 2024-10-26T06:53:53.910Z (2 months ago)
- Topics: latency-distribution, percentiles, plot, plotter, plotting, python
- Language: Python
- Homepage:
- Size: 3.56 MB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# prettypercentiles
Python utility for pretty percentile plots. Ideal for plotting latency graphs from csv files.
## Usage
Install Python 3 (Tested so far with 3.9)
(Optional but recommended to prevent cluttering your global pip) create a virtual environment in this directory:
```
python -m venv .venv
```Activate the virtual environment:
```
.venv\Scripts\activate
```Install dependencies from `requirements.txt`:
```
pip install -r requirements.txt
```Run plotter:
```
python prettypercentiles.py -c configs.example_config
```## Configuration
Configuration files are located in `configs/`
The 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.
There are comments for each setting, the most important ones are these:
### `tuple` of `(csv filename, column name, preprocessing function)`
These define where and which column to get and an optional preprocessing function to run it through
### `hgrm_map`
A 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.
### `label_map`
A 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](<#`tuple`-of-`(csv-filename,-column-name,-preprocessing-function)`>)
### `combined_columns`
A 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](<#`tuple`-of-`(csv-filename,-column-name,-preprocessing-function)`>)
Note that the hgrm labels cannot be combined as they contain the percentiles and not the latencies.
### `num_intervals`
Number that determines how far into the nines you want to plot.
For example: 3 means you will plot the following intervals:`[0-90, 90-99, 99-99.9]`
So the higher the number, the closer to 100% you will plot.
### `font_scale`
Float that increases/decreases font size. 1.0 is normal size. For example presentations usually have higher font size compared to papers.
## Output
Running example config:
```
python prettypercentiles.py -c configs.example_config
```the above command results in the following image in `images/example_plot.png`:
![Example plot](images/example_plot.png "Example plot")
Dark mode config (white text and grid lines):
```
python prettypercentiles.py -c configs.example_config_dark
```output image in `images/example_plot_dark.png`:
![Example plot dark](images/example_plot_dark.png "Example plot dark")