Skip to main content

event-calplot

A Python library for creating beautiful calendar heatmaps with Plotly.

Features

  • GitHub-style calendar heatmaps
  • Customizable colors and styling
  • Multi-language support (English, Korean)
  • Built on Plotly for interactive visualizations
  • Event highlighting
  • Multi-year support

Installation

Using pip

pip install event-calplot

Using uv

uv add event-calplot

Quick Start

import numpy as np
import pandas as pd
from event_calplot import create_calendar_heatmap

# Create sample data
df = pd.DataFrame(
    data={
        "date": pd.date_range(start="2024-01-01", end="2024-12-31"),
        "value": np.random.randint(0, 100, size=366),
    }
)

# Event dates
event_dates = pd.to_datetime(
    arg=[
        "2024-01-01",
        "2024-02-14",
        "2024-03-01",
        "2024-10-03",
        "2024-10-09",
        "2024-12-25",
    ]
)

# Create heatmap
fig = create_calendar_heatmap(
    data=df,
    date_col="date",
    value_col="value",
    year=2024,
    min_color="#eff2f5",
    max_color="#116329",
    line_color="#cccccc",
    event_dates=event_dates,
    event_color="#b64f17",
)
fig.show()
quick-start

Examples

Add Event

import numpy as np
import pandas as pd
from event_calplot import create_calendar_heatmap

# Create sample data
df = pd.DataFrame(
    data={
        "date": pd.date_range(start="2024-01-01", end="2024-12-31"),
        "value": np.random.randint(0, 100, size=366),
    }
)

# Event dates
event_dates = pd.to_datetime(
    arg=[
        "2024-01-01",
        "2024-02-14",
        "2024-03-01",
        "2024-10-03",
        "2024-10-09",
        "2024-12-25",
    ]
)

# Create heatmap
fig = create_calendar_heatmap(
    data=df,
    date_col="date",
    value_col="value",
    year=2024,
    min_color="#eff2f5",
    max_color="#116329",
    line_color="#cccccc",
    event_dates=event_dates,
    event_color="#b64f17",
)
fig.show()
example

API Reference

event-calplot

Create a calendar heatmap for a single year.

Parameters:

  • data (pd.DataFrame): DataFrame containing date and value columns
  • date_col (str): Name of the date column
  • value_col (str): Name of the value column
  • year (int): Year to visualize
  • language (Literal["en", "ko"], default="en"): Language for labels
  • min_color (str, default="#eeeeee"): Color for minimum values
  • max_color (str, default="#678fae"): Color for maximum values
  • line_color (str, default="#9e9e9e"): Color for month separator lines
  • line_width (float, default=1.5): Width of month separator lines
  • height (int, default=250): Height of the plot in pixels
  • hover_template (Optional[str], default=None): Custom hover template
  • event_dates (Optional[List[pd.Timestamp]], default=None): Dates to highlight
  • event_color (str, default="#76cf61"): Color for event markers

Returns: plotly.graph_objs.Figure

create_multi_year_heatmap

Create calendar heatmaps for all years in the data.

Parameters:

  • data (pd.DataFrame): DataFrame containing date and value columns
  • date_col (str): Name of the date column
  • value_col (str): Name of the value column
  • language (Literal["en", "ko"], default="en"): Language for labels
  • **kwargs: Additional arguments passed to create_calendar_heatmap

Returns: list[plotly.graph_objs.Figure]

Architecture

The package is organized into modular components:

  • preprocessing.py: Data preprocessing and transformation functions
  • layout.py: Plotly layout configuration
  • traces.py: Trace creation for heatmaps and lines
  • heatmap.py: Main API functions

This modular design ensures:

  • Each function has a single responsibility
  • Easy testing and maintenance
  • Clear separation of concerns
  • Reusable components

License

MIT License - see LICENSE file for details

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Author

Q07K(Gyuhyeong Kim) (kgh0730@gmail.com)

Links

Release files for event-calplot 0.2.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for event-calplot 0.2.5
File Size Uploaded
event_calplot-0.2.5.tar.gz 9.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for event-calplot 0.2.5
File Interpreter ABI Platform
event_calplot-0.2.5-py3-none-any.whl Python 3 none any Details

Total release size: 20.4 kB

Release files / event_calplot-0.2.5.tar.gz

Download URL event_calplot-0.2.5.tar.gz
Size 9.6 kB
Tags Source
SHA-256 checksum
How to use checksums
b5eb7ce0544ca42049a914e22e65474635771e3f67a177a115fec3346be2d671
BLAKE2b-256 checksum
How to use checksums
60b34ca58a278d152343a500e8bcef7586adcb1aed2f820a2a8dd369ad9ff62f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.8.23

Release files / event_calplot-0.2.5-py3-none-any.whl

Download URL event_calplot-0.2.5-py3-none-any.whl
Size 10.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
890ccb8336d6c3fa0588944a43603edda24d09eeda94036d354f9d055a1e564b
BLAKE2b-256 checksum
How to use checksums
a14b9ea10e85473d6972105fadd4b17e430e08609cd705979b094cb26a430461
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.8.23

Release history Release notifications | RSS feed

This release

0.2.5 This release

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page