您现在的位置是:首页 > 编程 > 

趋势(七)利用python绘制日历热图

2025-07-27 19:27:31
趋势(七)利用python绘制日历热图 趋势(七)利用python绘制日历热图日历热图(Calendar Heatmap)简介日历热图通过将事件聚合到日历网格中进行可视化分析,针对时序类数据特征较为直观,其中以github代码热图而知名。快速绘制基于plotly_calplot代码语言:javascript代码运行次数:0运行复制import pandas as pd import numpy a

趋势(七)利用python绘制日历热图

趋势(七)利用python绘制日历热图

日历热图(Calendar Heatmap)简介

日历热图通过将事件聚合到日历网格中进行可视化分析,针对时序类数据特征较为直观,其中以github代码热图而知名。

快速绘制

基于plotly_calplot

代码语言:javascript代码运行次数:0运行复制
import pandas as pd
import numpy as np
from plotly_calplot import calplot


# 自定义数据
dt = pd.date_range('2022-09-01', '202-10-15')
values = np.random.randint(0, 100, len(dt))
df = pd.DataFrame({"dt": dt, "value": values})

# 绘制图形
fig = calplot(
         df,
         x="dt",
         y="value"
)

fig.show()

基于pyecharts

代码语言:javascript代码运行次数:0运行复制
import pandas as pd
import numpy as np
from pyecharts import opti as opts
from  import Calendar
import datetime
import random

# 自定义数据
begin = datetime.date(2022, 1, 1)
end = datetime.date(2022, 12, 1)
data = [
    [str(begin + (days=i)), random.randint(1000, 25000)]
    for i in range((end - begin).days + 1)
]

c = (
    Calendar()
    .add("", data, calendar_opts=opts.CalendarOpts(range_="2022"))
    .set_global_opts(
        title_opts=opts.TitleOpts(title="2022年步数情况"),
        visualmap_opts=opts.VisualMapOpts(
            max_=0000,
            min_=500,
            orient="horizontal",
            is_piecewise=True,
            pos_top="20px",
            pos_left="100px",
        ),
    )
)

c.render_notebook()

基于calplot

代码语言:javascript代码运行次数:0运行复制
import numpy as np
import pandas as pd
import calplot
import matplotlib.pyplot as plt

# 自定义数据
np.random.seed(sum(map(ord, 'calplot')))
all_days = pd.date_range('1/1/2019', periods=70, freq='D')
days = np.(all_days, 500)
events = pd.Series(np.random.randn(len(days)), index=days)

(events, cmap='YlGn', figsize = (16, 8), colorbar=False)

plt.show()

基于july

代码语言:javascript代码运行次数:0运行复制
import numpy as np
import matplotlib.pyplot as plt
import july
from july.utils import date_range

# 自定义数据
dates_2022 = date_range("2022-01-01", "2022-12-1")
data_2022 = np.random.randint(0, 14, len(dates_2022))
dates_202 = date_range("202-01-01", "202-12-1")
data_202 = np.random.randint(0, 14, len(dates_202))

july.heatmap(dates_2022, data_2022, title='Github Activity', cmap="github")
july.heatmap(dates_202, data_202, cmap="github")

plt.show()
定制多样化的日历热图

自定义日历热图一般是结合使用场景对相关参数进行修改,并辅以其他的绘图知识。参数信息可以通过进行查看,其他的绘图知识则更多来源于实战经验,大家不妨将接下来的绘图作为一种学习经验,以便于日后总结。

按月绘制

代码语言:javascript代码运行次数:0运行复制
import numpy as np
import matplotlib.pyplot as plt
import july
from july.utils import date_range

# 自定义数据
dates = date_range("2022-01-01", "2022-12-1")
data = np.random.randint(0, 14, len(dates))

_plot(dates, data)

plt.show()

指定月份绘制

代码语言:javascript代码运行次数:0运行复制
import numpy as np
import matplotlib.pyplot as plt
import july
from july.utils import date_range

# 自定义数据
dates = date_range("2022-01-01", "2022-12-1")
data = np.random.randint(0, 14, len(dates))

# 初始化布局 
fig, axes = plt.subplots(1, 2)

# 带有日期标签
_plot(dates, data, month=5, date_label=True, ax=axes[0])
axes[0].set_title('with date label') 

# 带有数值标签
_plot(dates, data, month=5, value_label=True, ax=axes[1])
axes[1].set_title('with value label') 


plt.subplots_adjust(wspace=0.5)  # 增加子图之间的水平间隔
plt.show()
总结

以上通过plotly_calplot、pyecharts、calplot和july快速绘制日历热图。并通过修改参数或者辅以其他绘图知识自定义各种各样的日历热图来适应相关使用场景。

共勉~

本文参与 腾讯云自媒体同步曝光计划,分享自。原始发表:2024-12-10,如有侵权请联系 cloudcommunity@tencent 删除importrangepythondatadate

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1236371.html

相关标签:无
上传时间: 2025-07-26 16:22:38
留言与评论(共有 20 条评论)
本站网友 酷派6025
8分钟前 发表
100
本站网友 公众责任保险
9分钟前 发表
data) plt.show() 指定月份绘制代码语言:javascript代码运行次数:0运行复制import numpy as np import matplotlib.pyplot as plt import july from july.utils import date_range # 自定义数据 dates = date_range("2022-01-01"
本站网友 益军停车场
29分钟前 发表
其中以github代码热图而知名
本站网友 龙口租房网
22分钟前 发表
并通过修改参数或者辅以其他绘图知识自定义各种各样的日历热图来适应相关使用场景
本站网友 小黄狗
29分钟前 发表
趋势(七)利用python绘制日历热图 趋势(七)利用python绘制日历热图日历热图(Calendar Heatmap)简介日历热图通过将事件聚合到日历网格中进行可视化分析
本站网友 5x兴趣社区
0秒前 发表
axes = plt.subplots(1
本站网友 去青春痘的方法
9分钟前 发表
random.randint(1000
本站网友 哈尔滨老六杀猪菜
20分钟前 发表
month=5
本站网友 html在线编辑器
10分钟前 发表
len(dates_2022)) dates_202 = date_range("202-01-01"
本站网友 冯晓静
2分钟前 发表
14
本站网友 bcompare
12分钟前 发表
calendar_opts=opts.CalendarOpts(range_="2022")) .set_global_opts( title_opts=opts.TitleOpts(title="2022年步数情况")
本站网友 质检总局网站
2分钟前 发表
cmap="github") plt.show() 定制多样化的日历热图自定义日历热图一般是结合使用场景对相关参数进行修改
本站网友 张鹏翔
28分钟前 发表
pyecharts
本站网友 上海自贸区注册公司
9分钟前 发表
100
本站网友 图扑
13分钟前 发表
random.randint(1000
本站网友 恒大老板
15分钟前 发表
data_2022
本站网友 杭州市气象台
18分钟前 发表
500) events = pd.Series(np.random.randn(len(days))
本站网友 细菌性阴炎
14分钟前 发表
pos_left="100px"
本站网友 武汉市第十一中学
1分钟前 发表
12