Skip to content

invia-flights/blitzly

Repository files navigation

blitzly logo

blitzly ⚡️

Lightning-fast way to get plots with Plotly

DeployPackage Testing codecov pypi PyPI - Downloads python version docs pre-commit license isort black mypy linting: pylint

Introduction 🎉

Plotly is great and powerful. But with great power comes great responsibility 🕸. And sometimes you just want to get a plot up and running as fast as possible. That's where blitzly ⚡️ comes in. It provides a set of functions that allow you to create plots with Plotly in a lightning-fast way. It's not meant to replace Plotly, but rather to complement it.

Check out some examples in the Jupyter notebook.
Open In Colab

Install the package 📦

If you are using pip, you can install the package with the following command:

pip install blitzly

If you are using Poetry, you can install the package with the following command:

poetry add blitzly

installing dependencies 🧑‍🔧

With pip:

pip install -r requirements.txt

With Poetry:

poetry install

Available plots (so far 🚀)

Module Method Description
bar model_feature_importances Creates a bar chart with the feature importance of a model.
bar multi_chart Creates a bar chart with multiple groups.
dumbbell simple_dumbbell Plots a dumbbell plot. This can be used to compare two columns of data to visualize changes.
histogram simple_histogram Plots a histogram with one ore more distributions.
matrix binary_confusion_matrix Plots a confusion matrix for binary classification data.
matrix cramers_v_corr_matrix Cramer's V correlation for categorical features.
matrix pearson_corr_matrix Plots a Pearson product-moment correlation coefficients matrix.
scatter scatter_matrix Plots a scatter matrix.
scatter multi_scatter Create a multi scatter plot. It can be used to visualize the relationship between multiple variables from the same Pandas DataFrame.
scatter dimensionality_reduction Creates a plot to visualize higher dimensionality reduced data using matrix decomposition

Subplots 👩‍👩‍👧‍👦

Module Method Description
subplots make_subplots Create subplots using figure objects created with any of the above available plots.

Usage 🤌

Here are some examples. You can also open the playground notebook 📒.

dimensionality_reduction:

from blitzly.plots.scatter import dimensionality_reduction
import plotly.express as px

df = px.data.iris()
dimensionality_reduction(
  df,
  n_components=2,
  target_column="species",
  reduction_funcs=["PCA", "TNSE"],
)

Gives you this: dimensionality reduction plot

multi_bar:

from blitzly.plots.bar import multi_bar
import numpy as np

data = np.array([[8, 3, 6], [9, 7, 5]])
error_array = np.array([[0.1, 0.2, 0.3], [0.4, 0.5, 0.6]])

multi_bar(
    data,
    x_labels=["Vienna", "Berlin", "Lisbon"],
    group_labels=["Personal rating", "Global rating"],
    errors=error_array,
    title="City ratings 🏙",
    mark_x_labels=["Lisbon"],
    write_html_path="see_the_blitz.html",
)

Gives you this: multi bars plot

scatter matrix:

    from blitzly.plots.scatter import scatter_matrix
    import numpy as np
    import pandas as pd

    foo = np.random.randn(1000)
    bar = np.random.randn(1000) + 1
    blitz = np.random.randint(2, size=1000)
    licht = np.random.randint(2, size=1000)
    data = np.array([foo, bar, blitz, licht])
    df = pd.DataFrame(data.T, columns=["foo", "bar", "blitz", "licht"])

    scatter_matrix(
        df,
        dimensions=["foo", "bar", "blitz"],
        color_dim=df["licht"],
        title="My first scatter matrix 🙃",
        show_upper_half=True,
        diagonal_visible=False,
        marker_color_scale="Rainbow",
        marker_line_color="blue",
        size=(500, 500),
    )

Gives you this: scatter-matrix plot

Contributing 👩‍💻

Please check out the guide on how to contribute to this project.