《Python数据可视化之Matplotlib与Pyecharts》之旭日图
11.6.2 绘制我的家庭树旭日图
为了分析我的家庭的人员相互关系,绘制了我的家庭树旭日图,Python代码如下:
# -*- coding: utf-8 -*-
#声明Notebook类型,必须在引入pyecharts.charts等模块前声明
from pyecharts.globals import CurrentConfig, NotebookType
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
from pyecharts import options as opts
from pyecharts.charts import Sunburst
def sunburst() -> Sunburst:
data = [
opts.SunburstItem(
name="爷爷",
children=[
opts.SunburstItem(
name="李叔叔",
value=15,
children=[
opts.SunburstItem(name="表妹李诗诗", value=2),
opts.SunburstItem(
name="表哥李政",
value=5,
children=[opts.SunburstItem(name="表侄李佳", value=2)],
),
opts.SunburstItem(name="表姐李诗", value=4),
],
),
opts.SunburstItem(
name="爸爸",
value=10,
children=[
opts.SunburstItem(name="我", value=5),
opts.SunburstItem(name="哥哥李海", value=1),
],
),
],
),
opts.SunburstItem(
name="三爷爷",
children=[
opts.SunburstItem(
name="李叔叔",
children=[
opts.SunburstItem(name="表哥李靖", value=1),
opts.SunburstItem(name="表妹李静", value=2),
],
)
],
),
]
c = (
Sunburst()
.add(series_name="我的家庭树旭日图", data_pair=data, radius=[0, "90%"])
.set_global_opts(title_opts=opts.TitleOpts(title="我的家庭树旭日图"),
toolbox_opts=opts.ToolboxOpts())
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}"))
)
return c
#第一次渲染时候调用load_javasrcript文件
sunburst().load_javascript()
#展示数据可视化图表
sunburst().render_notebook()
在Jupyter lab中运行上述代码,生成如图11-6所示的旭日图。
图11-6 旭日图