Skip to main content

Python library for plotting bivariate choropleth maps

Project description

bivario

Python library for plotting bivariate choropleth maps in Matplotlib, Folium and Lonboard.


GitHub Checks GitHub Workflow Status - PROD pre-commit.ci status CodeFactor Grade Codecov Package version Supported Python versions PyPI - Downloads

Installation

With pip:

pip install bivario

With uv:

uv add bivario

Usage


Example of a Folium map in light and dark modes.

Simple Folium map:

from bivario import explore_bivariate_data
from bivario.example_data import nyc_bike_trips

explore_bivariate_data(
    nyc_bike_trips(), "morning_starts", "morning_ends"
)

Simple Lonboard map:

from bivario import viz_bivariate_data
from bivario.example_data import nyc_bike_trips

viz_bivariate_data(
    nyc_bike_trips(), "morning_starts", "morning_ends"
)

In dark mode:

from bivario import explore_bivariate_data
from bivario.example_data import nyc_bike_trips

explore_bivariate_data(
    nyc_bike_trips(),
    column_a="morning_starts",
    column_b="morning_ends",
    dark_mode=True, # default is False
)

Use other palette:

from bivario import explore_bivariate_data
from bivario.example_data import nyc_bike_trips

explore_bivariate_data(
    nyc_bike_trips(),
    column_a="morning_starts",
    column_b="morning_ends",
    cmap="bubblegum"
)

Set numerical mode (disable bucketing):

[!NOTE] By default, map is created using Mapclassify library with NaturalBreaks method to split data into 5 categories. Method and number of buckets can be changed or disabled completely.

from bivario import explore_bivariate_data
from bivario.example_data import nyc_bike_trips

explore_bivariate_data(
    nyc_bike_trips(),
    column_a="morning_starts",
    column_b="morning_ends",
    dark_mode=True,
    cmap="late_sunset",
    scheme=False, # or set to None
    legend_size_px=300,
)


Example of a Folium map in a numerical mode.

Bivariate colourmaps

Palettes in bivario are created by blending 2 or 4 colours in a 2D space using OKLab colour space. The operations on input and output are done in RGB, an internally are transformed into OKLab values using colour-science library.

bivario has 4 modes of Bivariate colourmaps:

AccentsBivariateColourmap - defined by two accent colours and a light and a dark colour.


CornersBivariateColourmap - defined by 4 corner colours (accent a/b, low value and high value)


MplCmapBivariateColourmap - defined by 2 Matplotlib colourmaps along axis X and Y


NamedBivariateColourmap - can load predefined palette from string name


Available palettes


You can load these palettes by passing a string name to the cmap attribute, or load a NamedBivariateColourmap object:

cmap = NamedBivariateColourmap("coral_ocean")

# You can call it similar to Matplotlib Colormap object
rgb_values = cmap(values_a=[0, 1], values_b=[0, 1])

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bivario-0.3.1.tar.gz (97.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bivario-0.3.1-py3-none-any.whl (101.0 kB view details)

Uploaded Python 3

File details

Details for the file bivario-0.3.1.tar.gz.

File metadata

  • Download URL: bivario-0.3.1.tar.gz
  • Upload date:
  • Size: 97.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.7

File hashes

Hashes for bivario-0.3.1.tar.gz
Algorithm Hash digest
SHA256 802271b26563d35044534fb698f59dc3a07ff5fa4d1f2971b5195013f10b079b
MD5 dbdc8fc28f60d476c073b7cd4338b971
BLAKE2b-256 5b6405544ab9bbc9d2a6a12c4f162a7a30355f5b8a61274ef49a5af28387d5df

See more details on using hashes here.

File details

Details for the file bivario-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: bivario-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 101.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.7

File hashes

Hashes for bivario-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 967ce1c63e539eed44bb2853d01a9d3061be95175573a3219e314720602839db
MD5 248b76f5c4c3b54f5d26c9b5d2026950
BLAKE2b-256 393f2284243ee9a2ebca8103620e42e41986dd1341baee7a6484b2492629e8a3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page