[图表]pyecharts模块-日历图
先来看代码:
import random
import datetime
import pyecharts.options as opts
from pyecharts.charts import Calendar
begin = datetime.date(2017, 1, 1)
end = datetime.date(2017, 12, 31)
data = [
[str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)]
for i in range((end - begin).days + 1)
]
(
Calendar()
.add(
series_name="",
yaxis_data=data,
calendar_opts=opts.CalendarOpts(
pos_top="120",
pos_left="30",
pos_right="30",
range_="2017",
yearlabel_opts=opts.CalendarYearLabelOpts(is_show=False),
),
)
.set_global_opts(
title_opts=opts.TitleOpts(pos_top="30", pos_left="center", title="2017年步数情况"),
visualmap_opts=opts.VisualMapOpts(
max_=20000, min_=500, orient="horizontal", is_piecewise=False
),
)
.render("calendar_heatmap.html")
)
再来看结果:


再来看解析:
这段代码使用了Python中的pyecharts模块创建了一个日历图,并使用了随机数和日期相关的模块。
首先,导入了需要的模块:
random:用于生成随机数的模块datetime:用于处理日期和时间的模块opts:包含一些图表配置选项的模块Calendar:用于创建日历图的类
接下来,定义了开始日期begin和结束日期end,并通过datetime.date创建了日期对象:
begin = datetime.date(2017, 1, 1)
end = datetime.date(2017, 12, 31)
然后,通过循环生成了一个包含日期和随机数的二维列表data,每个日期对应一个随机数:
data = [
[str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)]
for i in range((end - begin).days + 1)
]
在每次循环中,通过datetime.timedelta增加了一天的时间,将日期转换为字符串,并生成了一个随机数。
接着,创建了一个Calendar对象,并使用add方法添加数据。通过指定yaxis_data参数传入data列表,设置了日历图的配置选项:
(
Calendar()
.add(
series_name="",
yaxis_data=data,
calendar_opts=opts.CalendarOpts(
pos_top="120",
pos_left="30",
pos_right="30",
range_="2017",
yearlabel_opts=opts.CalendarYearLabelOpts(is_show=False),
),
)
...
)
在calendar_opts中,设置了日历图的位置、范围、年份标签等选项。
然后,使用set_global_opts方法设置全局选项,这里设置了图表的标题和可视化映射的选项:
.set_global_opts(
title_opts=opts.TitleOpts(pos_top="30", pos_left="center", title="2017年步数情况"),
visualmap_opts=opts.VisualMapOpts(
max_=20000, min_=500, orient="horizontal", is_piecewise=False
),
)
标题的位置设置在顶部居中,标题内容为"2017年步数情况"。可视化映射的选项设置了最大值、最小值、方向等。
最后,使用render方法将图表渲染为一个HTML文件,并保存为"calendar_heatmap.html":
.render("calendar_heatmap.html")
整个过程中,每个方法调用都返回了当前对象,所以可以使用链式调用的方式来依次添加数据和配置。最终,调用render方法将图表渲染为HTML文件。通过设置日期和随机数数据以及相应的配置选项,实现了日历图的生成,展示了每天的步数情况。
注:图表资源来源于:
pyecharts-gallery
本站只提供常用图表与其解析






![[图表]pyecharts模块-柱状图2](https://img-blog.csdnimg.cn/c8b3348eeb34417cb2d867db12632e15.png#pic_center)

![【群智能算法改进】一种改进的算术优化算法 改进算术优化算法 改进AOA[1]【Matlab代码#37】](https://img-blog.csdnimg.cn/8e085f0699494594a1e2dad205f2b5a0.png#pic_center)



![[图表]pyecharts模块-反转柱状图](https://img-blog.csdnimg.cn/4dbc4820d0ab49eca91130697d661f76.png#pic_center)






