Pyecharts 树图

在 Pyecharts 中,树图是一类图表,它主要包括 2 种:① 树图;② 矩形树图,如下图所示。在实际开发中,大多数情况下我们只会用到树图这一种,所以这一节重点介绍一下树图是如何使用的。

pyecharts树图

pyecharts矩形树图

Pyecharts 树图语法

在 Pyecharts 中,我们可以使用 Tree 这个模块来绘制一个树图。树图适用于展示树型的结构,比如公司结构、项目结构等。

语法:

tree = Tree()
tree.add(series_name, data)

说明:

对于树图来说,它也是使用 add() 方法。参数 series_name 用于定义系列名,参数 data_pair 用于定义数据部分。

示例 1:Pyecharts 绘制树图

from pyecharts.charts import Tree

# 数据
data = [{
    'name': 'A',
    'children': [
        {'name': 'B'},
        {
            'name': 'C',
            'children': [
                {'name': 'E'}, 
                {'name': 'F'}
            ]
        },
        {
            'name': 'D',
            'children': [
                {'name': 'G'},
                {'name': 'H'}
            ]
        }
    ]
}]
# 绘图
tree = Tree()
tree.add(series_name='', data=data)

# 渲染
tree.render()

运行生成的 render.html,浏览器效果如下图所示。

pyecharts基本树图

分析:

树图的绘制非常简单,不过我们需要注意一下 data 的格式。树图的每一个节点由 2 部分组成:name 和 children。name 用于定义当前节点的名字,如果该节点有子节点,就需要使用 children 来定义。如果该节点没有子节点,就不需要使用 children。

对于树图来说,我们点击某一个节点,如果该节点有子子节点,那么就会把子节点隐藏起来。比如当我们点击节点 D 之后,此时效果如下图所示。隐藏之后,再次点击该节点,就会显示完整的节点出来了。

pyecharts点击树图节点

Pyecharts 树图样式

在 Pyecharts 中,对于树图的自定义样式,主要包括 2 个方面:① 改变方向;② 标签设置。

1. 改变方向

在 Pyecharts 中,我们可以使用 add() 方法的 orient 参数来定义树图的方向。其中,orient 参数常用取值如下表所示。

参数 orient 的取值
取值 说明
LR(默认值) 从左到右,即 “Left to Right”
RL 从右到左,即 “Right to Left”
BT 从下到上,即 “Bottom to Top”
TB 从上到下,即 “Top to Bottom”

示例 2:从上到下

from pyecharts.charts import Tree

# 数据
data = [{
    'name': '总公司',
    'children': [
        {'name': '分公司A'},
        {
            'name': '分公司B',
            'children': [
                {'name': '部门A'}, 
                {'name': '部门B'}
            ]
        },
        {
            'name': '分公司C',
            'children': [
                {'name': '部门A'},
                {'name': '部门B'}
            ]
        }
    ]
}]

# 绘图
tree = Tree()
tree.add(series_name='', data=data, orient='TB')

# 渲染
tree.render()

运行生成的 render.html,浏览器效果如下图所示。

pyecharts树图改变方向

分析:

orient='TB' 表示设置树图的方向为 “从上到下”,小伙伴们可以自行试一下其他值,然后看看效果是怎么样的。

2. 标签设置

在 Pyecharts 中,我们还可以使用 set_series_opts() 方法结合 label_opts 参数来定义标签的样式。

示例 3:设置标签

from pyecharts.charts import Tree
from pyecharts import options as opts

# 数据
data = [{
    'name': '总公司',
    'children': [
        {'name': '分公司A'},
        {
            'name': '分公司B',
            'children': [
                {'name': '部门A'}, 
                {'name': '部门B'}
            ]
        },
        {
            'name': '分公司C',
            'children': [
                {'name': '部门A'},
                {'name': '部门B'}
            ]
        }
    ]
}]

# 绘图
tree = Tree()
tree.add(
    series_name='', 
    data=data, 
    orient='TB',
    label_opts=opts.LabelOpts(
        position='top',
        horizontal_align='right',
        vertical_align='middle',
        rotate=-90,
        font_size=14,
        color='red'
    )
)

# 渲染
tree.render()

运行生成的 render.html,浏览器效果如下图所示。

pyecharts树图定义标签样式

分析:

当树图分支非常多时,我们还需要调整一下标签文本的位置、颜色等,此时可以使用之前介绍的 label_opts 参数来进行设置。

上一篇: Pyecharts 地图

下一篇: Pyecharts 标题

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号