A Python library for creating beautiful calendar heatmaps with Plotly.
- GitHub-style calendar heatmaps
- Customizable colors and styling
- Multi-language support (English, Korean)
- Built on Plotly for interactive visualizations
- Event highlighting
- Multi-year support
pip install event-calplotuv add event-calplotimport pandas as pd
from event_calplot import create_calendar_heatmap
df = pd.DataFrame({
'date': pd.date_range('2024-01-01', '2024-12-31'),
'value': range(366)
})
# Create heatmap
fig = create_calendar_heatmap(
data=df,
date_col='date',
value_col='value',
year=2024
)
fig.show()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()Create a calendar heatmap for a single year.
Parameters:
data(pd.DataFrame): DataFrame containing date and value columnsdate_col(str): Name of the date columnvalue_col(str): Name of the value columnyear(int): Year to visualizelanguage(Literal["en", "ko"], default="en"): Language for labelsmin_color(str, default="#eeeeee"): Color for minimum valuesmax_color(str, default="#678fae"): Color for maximum valuesline_color(str, default="#9e9e9e"): Color for month separator linesline_width(float, default=1.5): Width of month separator linesheight(int, default=250): Height of the plot in pixelshover_template(Optional[str], default=None): Custom hover templateevent_dates(Optional[List[pd.Timestamp]], default=None): Dates to highlightevent_color(str, default="#76cf61"): Color for event markers
Returns: plotly.graph_objs.Figure
Create calendar heatmaps for all years in the data.
Parameters:
data(pd.DataFrame): DataFrame containing date and value columnsdate_col(str): Name of the date columnvalue_col(str): Name of the value columnlanguage(Literal["en", "ko"], default="en"): Language for labels**kwargs: Additional arguments passed tocreate_calendar_heatmap
Returns: list[plotly.graph_objs.Figure]
The package is organized into modular components:
preprocessing.py: Data preprocessing and transformation functionslayout.py: Plotly layout configurationtraces.py: Trace creation for heatmaps and linesheatmap.py: Main API functions
This modular design ensures:
- Each function has a single responsibility
- Easy testing and maintenance
- Clear separation of concerns
- Reusable components
MIT License - see LICENSE file for details
Contributions are welcome! Please feel free to submit a Pull Request.
Q07K(Gyuhyeong Kim) (kgh0730@gmail.com)