Skip to main content

Data clock charts using matplotlib.

Project description

Data Clock Visualisation Library

PyPI - Version PyPI - Downloads Python Version from PEP 621 TOML GitHub deployments

[!NOTE] This library is a work in progress and is frequently updated.

Introduction

This library allows the user to create data clock graphs, using the matplotlib Python library.

Data clocks visually summarise temporal data in two dimensions, revealing seasonal or cyclical patterns and trends over time. A data clock is a circular chart that divides a larger unit of time into rings and subdivides it by a smaller unit of time into wedges, creating a set of temporal bins.

These temporal bins are symbolised using graduated colors that correspond to a count or aggregated value taking place in each time period.

The table below details the currently supported chart modes and the corresponding rings and wedges:

Mode Rings Wedges Description
YEAR_MONTH Years Months Years / January - December.
YEAR_WEEK Years Weeks Years / weeks 1 - 52.
WEEK_DAY Weeks Days of the week Weeks 1 - 52 / Monday - Sunday.
DOW_HOUR Days of the week Hour of day Monday - Sunday / 24 hours.
DAY_HOUR Days Hour of day Days 1 - 356 / 24 hours.

The full documentation can be viewed on the project GitHub Page.

Example charts

Chart examples have been generated using UK Department for Transport data 2010 - 2015.

import pandas as pd
from dataclocklib.charts import dataclock

data = pd.read_parquet(
    "https://raw.githubusercontent.com/andyrids/dataclocklib/main/tests/data/traffic_data.parquet.gzip"
)

graph_data, fig, ax = dataclock(
    data=data.query("Date_Time.dt.year.ge(2015)"),
    date_column="Date_Time",
    agg_column="Number_of_Casualties",
    agg="sum",
    mode="DOW_HOUR",
    cmap_name="CMRmap_r",
    chart_title="UK Car Accident Casualties 2015",
    chart_subtitle=None,
    chart_source="www.kaggle.com/datasets/silicon99/dft-accident-data"
)

Data clock chart

import pandas as pd
from dataclocklib.charts import dataclock

data = pd.read_parquet(
    "https://raw.githubusercontent.com/andyrids/dataclocklib/main/tests/data/traffic_data.parquet.gzip"
)

graph_data, fig, ax = dataclock(
    data=data.query("Date_Time.dt.year.eq(2010)"),
    date_column="Date_Time",
    agg_column=None,
    agg="count",
    mode="DOW_HOUR",
    cmap_name="RdYlGn_r",
    chart_title="UK Car Accidents 2010",
    chart_subtitle=None,
    chart_source="www.kaggle.com/datasets/silicon99/dft-accident-data"
)

Data clock chart

Installation

You can install using pip:

python -m pip install dataclocklib

To install from GitHub use:

python -m pip install git+https://github.com/andyrids/dataclocklib.git

Development Installation

Astral uv is used as the Python package manager. To install uv see the installation guide @ uv documentation.

Clone the repository:

git clone git@github.com:andyrids/dataclocklib.git
cd dataclocklib

Sync the dependencies, including the dev dependency group and optional dependencies with uv:

uv sync --all-extras

Activate the virtual environment:

. .venv/bin/activate

Sphinx documentation

cd docs
make html

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

dataclocklib-0.1.6.tar.gz (22.2 MB view details)

Uploaded Source

Built Distribution

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

dataclocklib-0.1.6-py3-none-any.whl (21.6 kB view details)

Uploaded Python 3

File details

Details for the file dataclocklib-0.1.6.tar.gz.

File metadata

  • Download URL: dataclocklib-0.1.6.tar.gz
  • Upload date:
  • Size: 22.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.16

File hashes

Hashes for dataclocklib-0.1.6.tar.gz
Algorithm Hash digest
SHA256 f2bed027b9e337cb38f84b5a117e64d1e2cc88ea714b9a0678db751c7d5fe1d2
MD5 4b5c80be10526d1fa9e7889e7f779892
BLAKE2b-256 41bf211a41ce3cb91b86772196d9baa3cd24f82572d886313b47256159ed09f5

See more details on using hashes here.

File details

Details for the file dataclocklib-0.1.6-py3-none-any.whl.

File metadata

File hashes

Hashes for dataclocklib-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 18b2c59433d014be24f9f794cf64c12c7a3ac75d5530d7f9cd62ca87b36a24c7
MD5 4c6e7d533d61c1e65cfc998da4fa5caa
BLAKE2b-256 85e7eb6dcdab3f6f474350c0ff55e99469027f5be6412c2d5a735b3cae04804a

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