I believe many people will see such a heat map in GitHub, which records the daily contribution of GitHub platform. Time series data sampled in days in the heat map of each calendar year. GitHub's contribution graph shows the number of contributions made by users in the past few years. The color block represents the amount of contribution, as shown below the color code. From this heat map, we can detect the daily contribution pattern.

Github
time series data
Time series data is a series of data collected over time and sorted according to certain rules, such as hourly, daily, monthly or annual data series in the time series. The application of time series includes sensor readings from industrial processes, weather data such as precipitation, rainfall, temperature or agricultural crop growth, medical records of patients over a period of time, etc. Time series analysis reveals hidden patterns, such as trends or seasonality. Here is a very detailed introduction and suggestions 👉 Time series definition, mean, variance, autocovariance and correlation
Calendar heat map
The calendar heat map uses color cells, usually a single primary color tone, and is extended with its lightness, hue and saturation (such as light to dark blue). It displays the relative number of events per day in the calendar view. Each day is arranged by week, grouped by month and year. This allows you to quickly identify daily and weekly patterns.
Calplot
Visualization is a good way to gain insight into data. When examining time series data, seasonal or cyclical behavior (if involved) must be understood from the data. Create a heat map using the calplot python library. Calplot creates a heat map from Pandas time series data.
copypip install calplot
copyCollecting calplot Downloading calplot-0.1.7.4-py3-none-any.whl (8.2 kB) Installing collected packages: calplot Successfully installed calplot-0.1.7.4
Basic drawing
copyimport calplot import numpy as np; np.random.seed(sum(map(ord, 'calplot'))) import pandas as pd all_days = pd.date_range('1/1/2019', periods=730, freq='D') days = np.random.choice(all_days, 500) events = pd.Series(np.random.randn(len(days)), index=days) calplot.calplot(events)

Hide boundary
Boundary related parameter: edgecolor refers to the color of the line separating months. Set it to None to hide the boundary.
copyall_days = pd.date_range('1/1/2019', periods=360, freq='D') days = np.random.choice(all_days, 500) events = pd.Series(np.random.randn(len(days)), index=days) calplot.calplot(events, edgecolor=None, cmap='YlGn')

calplot_edgecolor_None
Change border year style
Parameter yearlabel_kws passed to Matplotlib set_ The keyword parameter of the ylabel call is used to draw the year of each subgraph. This parameter accepts a dictionary and can set color, size and other styles.
copycalplot.calplot(events, yearlabel_kws={'color': 'black'}, cmap='YlGn')

calplot_yearcolor_black
Add text label
Similar to the ordinary heat map, the specific value can be displayed on each small grid. Controlled by the parameters textformat and textmiller, it represents the string format of the grid cell text and the text style of the grid cell when the text is missing data.
copycalplot.calplot(events, textformat='{:.0f}', textfiller='-', cmap='YlGn')

calplot_textformat
Hide color bar
There will be a color line on the right of the heat map to indicate the color range of each color. If you don't need to display, you can set the parameter colorbar to False.
copycalplot.calplot(events, colorbar=False, cmap='YlGn')

calplot_colorbar_False
Set title
The parameter supertitle that controls the title of the heat map accepts a string.
copycalplot.calplot(events, suptitle='Random data from standard normal distribution', cmap='YlGn')

calplot_suptitle
Hide edges of heat map
Control the width parameter linewidth of the line that will be separated every day. If you want to hide it, you can directly set it to 0.
copycalplot.calplot(events, linewidth=0, cmap='YlGn')

calplot_linewidth_zero
For more details, see: https://calplot.readthedocs.io/en/latest/