simplt

Makes plotting matplotlib easy.


License
AGPL-3.0
Install
pip install simplt==0.0.4

Documentation

Simple Python plot

Python 3.10 License: AGPL v3 Code Style: Black Code Coverage

Call this pip package to easily create:

  • a boxplot
  • a multi-line plot
  • a latex table

Example Boxplot

python -m simplt --box-plot

Which is the same as running:

from simplt.boxplot.boxplot import create_box_plot
import numpy as np

extensions=[
    ".png",
],
filename="example_box",
output_dir="output",

# Fixing random state for reproducibility
np.random.seed(7)

# Generate dummy data.
first = [39, 44, 50, 50, 58, 63]
second = [80, 100, 100, 120]

# Add a name for each boxplot for in the legend, and y values.
y_series = {"data_1": first, "data_2": second}

create_box_plot(
    extensions=extensions,
    filename=filename,
    legendPosition=0,
    output_dir=output_dir,
    x_axis_label="x-axis label [units]",
    y_axis_label="y-axis label [units]",
    y_series=y_series,
)

And creates:

Example Multi-Line Plot

python -m simplt --line-plot

Which is the same as running:

from simplt.line_plot.line_plot import line_plot
import numpy as np

extensions=[
    ".png",
],
filename="example_line",
output_dir="output",

multiple_y_series = np.zeros((2, 2), dtype=int)
# actually fill with data
multiple_y_series[0] = [1, 2]
lineLabels = [
    "first-line",
    "second_line",
]  # add a label for each dataseries
single_x_series = [3, 5]

plot_multiple_lines(
    extensions=extensions,
    filename=filename,
    label=lineLabels,
    legendPosition=0,
    output_dir=output_dir,
    x=single_x_series,
    x_axis_label="x-axis label [units]",
    y_axis_label="y-axis label [units]",
    y_series=multiple_y_series,
)

And creates a (colorblind-friendly) lineplot:

Example Multi-Group Scatter Plot

python -m simplt --dot-plot

Which is the same as running:

from simplt.dotted_plot.dotted_plot import plot_multiple_dotted_groups
import numpy as np

single_x_series = [3., 5.]
multiple_y_series:Dict[int,Dict[float,List[float]]] = {}

# actually fill with data
multiple_y_series[0]={}
multiple_y_series[0][single_x_series[0]] = [1., 2., 5.]
multiple_y_series[0][single_x_series[1]] = [0., 6.]

multiple_y_series[1]={}
multiple_y_series[1][single_x_series[0]] = [3., 4.]
multiple_y_series[1][single_x_series[1]] = [1., 5.]



groupLabels = [
    "first_group",
    "second_group",
]  # add a label for each dataseries

print(multiple_y_series)
plot_multiple_dotted_groups(
    extensions=extensions,
    filename=filename,
    label=groupLabels,
    legendPosition=0,
    output_dir=output_dir,
    x_axis_label="x-axis label [units]",
    y_axis_label="y-axis label [units]",
    y_series=multiple_y_series,
)

And creates a (colorblind-friendly) dotplot:

For Developers

Below are pip-package publication instructions.

Releasing pip package update

To udate the Python pip package, one can first satisfy the following requirements:

pip install --upgrade pip setuptools wheel
pip install twine

Followed by updating the package with:

python3 setup.py sdist bdist_wheel
python -m twine upload dist/\*

Developer pip install

Build the pip package with:

pip install --upgrade pip setuptools wheel
pip install twine

Install the pip package locally with:

rm -r dist
rm -r build
python3 setup.py sdist bdist_wheel
pip install -e .

Upload the pip package to the world with:

rm -r dist
rm -r build
python3 setup.py sdist bdist_wheel
python3 -m twine upload dist/\*