Pyecharts树状图:树图

echarts:5、树状图 树状图 阅读详情
AI摘要

本文介绍PyEcharts中树图的基本用法及多种布局方式,包括左右、上下、环状布局,并提供实例代码。

Pyecharts树状图:树图



前言

本文主要是展示了Pyecharts树状图的基本树图的简单应用和基本案例。


一. Tree树图

1.1 add 函数

这里主要是名称,数据,布局类型,标记图形,标签配置项。

# func pyecharts.charts.Tree.add
def add(
    # 系列名称,用于 tooltip 的显示,legend 的图例筛选。
    series_name: str,

    # 系列数据项
    data: Sequence[Union[opts.TreeItem, dict]],

    # 树图的布局,有 正交 和 径向 两种。这里的 正交布局 就是我们通常所说的水平 和 垂直 方向,
    # 对应的参数取值为 'orthogonal' 。而 径向布局 是指以根节点为圆心,每一层节点为环,
    # 一层层向外发散绘制而成的布局,对应的参数取值为 'radial'
    layout: str = "orthogonal",

    # 标记的图形。ECharts 提供的标记类型包括 'emptyCircle', 'circle', 'rect', 'roundRect', 
    # 'triangle', 'diamond', 'pin', 'arrow', 'none'。
    symbol: types.JSFunc = "emptyCircle",

    # 标记的大小,可以设置成诸如 10 这样单一的数字,也可以用数组分开表示宽和高,
    # 例如 [20, 10] 表示标记宽为 20,高为 10。
    symbol_size: types.Union[types.JSFunc, types.Numeric, types.Sequence] = 7,

    # 树图中 正交布局 的方向,也就是说只有在 layout = 'orthogonal' 的时候,
    # 该配置项才生效。对应有 水平 方向的 从左到右,从右到左;以及垂直方向的从上到下,
    # 从下到上。取值分别为 'LR' , 'RL', 'TB', 'BT'。注意,之前的配置项值 'horizontal' 
    # 等同于 'LR', 'vertical' 等同于 'TB'。
    orient: str = "LR",

    # tree组件离容器上侧的距离。
    # top 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,
    # 也可以是 'top', 'middle', 'bottom'。
    # 如果 top 的值为'top', 'middle', 'bottom',组件会根据相应的位置自动对齐。
    pos_top: Optional[str] = None,

    # tree 组件离容器左侧的距离。
    # left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,
    # 也可以是 'left', 'center', 'right'。
    # 如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐。
    pos_left: Optional[str] = None,

    # tree 组件离容器下侧的距离。
    # bottom 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。
    pos_bottom: Optional[str] = None,

    # tree 组件离容器右侧的距离。
    # right 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。
    pos_right: Optional[str] = None,

    # 折叠节点间隔,当节点过多时可以解决节点显示过杂间隔。
    collapse_interval: Numeric = 0,

    # 树图在 正交布局 下,边的形状。分别有曲线和折线两种,对应的取值是 curve 和 polyline.
    # 注意:该配置项只在 正交布局 下有效,在经向布局下的开发环境中会报错。
    edge_shape: str = "curve",

    # 正交布局下当边的形状是折线时,子树中折线段分叉的位置。
    # 这里的位置指的是分叉点与子树父节点的距离占整个子树高度的百分比。
    # 默认取值是 '50%',可以是 ['0', '100%'] 之间。
    # 注意:该配置项只有在 edgeShape = 'curve' 时才有效。
    edge_fork_position: str = "50%",

    # 是否开启鼠标缩放和平移漫游。默认不开启。如果只想要开启缩放或者平移。
    # 可以设置成 'scale' 或者 'move'。设置成 true 为都开启
    is_roam: bool = False,

    # 子树折叠和展开的交互,默认打开 。由于绘图区域是有限的,而通常一个树图的节点可能会比较多,
    # 这样就会出现节点之间相互遮盖的问题。为了避免这一问题,可以将暂时无关的子树折叠收起,
    # 等到需要时再将其展开。如上面径向布局树图示例,节点中心用蓝色填充的就是折叠收起的子树,可以点击将其展开。
    # 注意:如果配置自定义的图片作为节点的标记,是无法通过填充色来区分当前节点是否有折叠的子树的。
    # 而目前暂不支持,上传两张图片分别表示节点折叠和展开两种状态。所以,如果想明确地显示节点的两种状态,
    # 建议使用 ECharts 常规的标记类型,如 'emptyCircle' 等。
    is_expand_and_collapse: bool = True,

    # 树图初始展开的层级(深度)。根节点是第 0 层,然后是第 1 层、第 2 层,... ,
    # 直到叶子节点。该配置项主要和 折叠展开 交互一起使用,目的还是为了防止一次展示过多节点,
    # 节点之间发生遮盖。如果设置为 -1 或者 null 或者 undefined,所有节点都将展开。
    initial_tree_depth: Optional[Numeric] = None,

    # 标签配置项,参考 `series_options.LabelOpts`
    label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),

    # 叶子节点标签配置项,参考 `series_options.LabelOpts`
    leaves_label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),

    # 提示框组件配置项,参考 `series_options.TooltipOpts`
    tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,
)

1.2 TreeItem

树的配置项还是很重要的,基本一些好看点的图都需要进行重新设置。

# class pyecharts.options.TreeItem
class TreeItem(
    # 树节点的名称,用来标识每一个节点。
    name: Optional[str] = None,

    # 节点的值,在 tooltip 中显示。
    value: Optional[Numeric] = None,

    # 该节点的样式,参考 `series_options.LabelOpts`
    label_opts: Optional[LabelOpts] = None,

    # 子节点,嵌套定义。
    children: Optional[Sequence] = None,
)

二. 例子

2.1 左右方向

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


data = [
    {
        "children": [
            {"name": "B"},
            {
                "children": [{"children": [{"name": "I"}], "name": "E"}, {"name": "F"}],
                "name": "C",
            },
            {
                "children": [
                    {"children": [{"name": "J"}, {"name": "K"}], "name": "G"},
                    {"name": "H"},
                ],
                "name": "D",
            },
        ],
        "name": "A",
    }
]
c = (
    Tree()
    .add("", data)
    .set_global_opts(title_opts=opts.TitleOpts(title="Tree-基本示例"))
    .render("tree_base.html")
)

基本树图

2.2 下上方向

import json

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

with open("flare.json", "r", encoding="utf-8") as f:
    j = json.load(f)
c = (
    Tree()
    .add(
        "",
        [j],
        collapse_interval=2,
        orient="BT",
        label_opts=opts.LabelOpts(
            position="top",
            horizontal_align="right",
            vertical_align="middle",
            rotate=-90,
        ),
    )
    .set_global_opts(title_opts=opts.TitleOpts(title="Tree-下上方向"))
    .render("tree_bottom_top.html")
)

上下方向

2.3 右左方向

import json

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

with open("flare.json", "r", encoding="utf-8") as f:
    j = json.load(f)
c = (
    Tree()
    .add("", [j], collapse_interval=2, orient="RL")
    .set_global_opts(title_opts=opts.TitleOpts(title="Tree-右左方向"))
    .render("tree_right_left.html")
)

左右方向

2.4 上下方向

import json

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


with open("flare.json", "r", encoding="utf-8") as f:
    j = json.load(f)
c = (
    Tree()
    .add(
        "",
        [j],
        collapse_interval=2,
        orient="TB",
        label_opts=opts.LabelOpts(
            position="top",
            horizontal_align="right",
            vertical_align="middle",
            rotate=-90,
        ),
    )
    .set_global_opts(title_opts=opts.TitleOpts(title="Tree-上下方向"))
    .render("tree_top_bottom.html")
)

上下方向

2.5 环状树图

import asyncio
from aiohttp import TCPConnector, ClientSession

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

async def get_json_data(url: str) -> dict:
    async with ClientSession(connector=TCPConnector(ssl=False)) as session:
        async with session.get(url=url) as response:
            return await response.json()


# 获取官方的数据
data = asyncio.run(
    get_json_data(url="https://echarts.apache.org/examples/data/asset/data/flare.json")
)

(
    Tree(init_opts=opts.InitOpts(width="1400px", height="800px"))
    .add(
        series_name="",
        data=[data],
        pos_top="18%",
        pos_bottom="14%",
        layout="radial",
        symbol="emptyCircle",
        symbol_size=7,
    )
    .set_global_opts(
        tooltip_opts=opts.TooltipOpts(trigger="item", trigger_on="mousemove")
    )
    .render("radial_tree.html")
)

环状树图

2.6 布局树图

import json

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

with open("flare.json", "r", encoding="utf-8") as f:
    j = json.load(f)
c = (
    Tree()
    .add("", [j], collapse_interval=2, layout="radial")
    .set_global_opts(title_opts=opts.TitleOpts(title="Tree-Layout"))
    .render("tree_layout.html")
)

布局树图

这里我们可以将前面四种图分为一类,在详细一点,就是上下方向的为一组,左右方向为一组,环形为一组,每一组两个图。然后我们讲他们两两进行对比,发现,其实主要是在前面四张图的 add函数 中的 orient参数 的设定,以及 label_opts 的有效设定,使得图形与平时常见的有一些不同。对于环状图,就是 add函数 里的 layout参数 的设定不同。


总结

本文主要是简单展示了Pyecharts树图的简单应用,后面用六张图为案例进行简单的做一个熟练。

如何使用Python的Pyecharts制作漂亮的Tree 树图? Pyecharts是一个基于Echarts的Python数据可视化库,可以很容易地生成各种漂亮的图表。本文介绍如何使用Pyecharts绘制Tree树图。 阅读详情

相关推荐

别再只会画基础树图了!Pyecharts Tree 布局参数详解(附6种方向/环状图实战代码)

本文深入解析Pyecharts树状图的布局参数与视觉优化技巧,涵盖6种实战布局方案(LR/RL/TB/BT/径向/混合),详细讲解orient、layout、edge_shape等核心参数的配置策略。通过企业架构图、思维导图、知识图谱等案例,展示如何通过参数调优提升树状图的专业表现力,特别适合需要展示复杂层级关系的数据可视化场景。

weixin_42619061的博客 298

echarts-----树状图(基础参数)

echarts-----树状图 首先echarts官网树状图示例展示展示 代码在官网示例图上都有,可以自行查阅,但该示例有个问题在于树状图的生成线都是弧线,而我们大部分需求都是折线 展示折线树状图,效果如下: 看了官网API参数控制,加上自己试验发现控制折线的参数是edgeShape 贴一下代码块: var data = { "name": "flare", "children": [ { "name": "data",

m0_46698214的博客 2万+

Python数据可视化 Pyecharts 制作 Tree 树图

大家好,我是Mr数据杨。想象一下,郭嘉、周瑜等众多智谋之士正在用它们来描绘三国的战略图。首先树图,就如同三国的地图,详尽地描绘了数据间的关系,而基本设置,就如同划分各地的界限,确定领土边际可以通过基本设置确定树图的总体规格。坐标轴设置就像是绘制地图上的经纬线,以确定战略点的具体位置。通过精确的坐标轴可以清晰地找到每个数据点,洞察数据之间的关系。树图选项可以让个性化的展示信息,就像诸葛亮设下诸多兵法阵型,变化无穷。根据需求可以选择不同的树图选项,为数据展现提供多样的视觉效果。

Mr数据杨 4万+

echarts中的树形结构图(参数分析)

先上echarts官网示例图,可以点开链接查看,这里先上一张截图,以及官网代码 官网代码: myChart.showLoading(); //显示Loading标志; var myChart = echarts.init(document.getElementById('页面中div的id')); $.get('data/asset/data/flare.json', funct...

van的博客 10万+

微博文本LDA主题建模与树图可视化实战

LDA(Latent Dirichlet Allocation)是一种经典的无监督主题建模技术,通过概率生成模型从大规模文本中自动发现隐含语义主题。其核心原理是假设每篇文档由多个主题混合构成,每个主题又由词频分布表征;经吉布斯采样或变分推断优化后,可输出可解释的主题-词分布与文档-主题分布。该技术在舆情分析、内容归类、竞品监测等场景中具备显著工程价值——尤其适配微博等短文本、高噪声、强时效性的中文社交数据。结合轻量清洗、jieba定制分词、gensim实现与pyecharts树图可视化,能将杂乱热搜转化为业

weixin_29531177的博客 222

微博舆情分析实战:LDA主题建模+树图可视化毕业设计项目

微博舆情分析是自然语言处理在社交媒体场景中的典型应用,其核心在于从非结构化短文本中挖掘潜在主题并实现可解释可视化。基于LDA(Latent Dirichlet Allocation)的主题建模技术,能有效应对微博文本长度短、噪声高、语义稀疏等挑战;结合TF-IDF向量化与定制化清洗流程(如三阶过滤、微博特有停用词),可显著提升主题区分度。该技术链路具备明确工程价值——支撑舆情监测、热点追踪与传播路径分析,并广泛应用于毕业设计、政务舆情系统及数字营销领域。本文提供完整可运行的微博舆情分析闭环方案,涵盖真实数据

weixin_29053067的博客 148

echart树状图使用细则以及注意事项以及SVG实现树形组织结构图绘制(可实现页面要求设计的树状结构图)

echart树状图使用细则以及注意事项以及SVG实现树形组织结构图绘制(可实现页面要求设计的树状结构图)

qq_72760247的博客 4568

微博舆情分析Python闭环:爬虫+LDA主题建模+树图可视化

LDA主题模型是一种无监督的文本聚类方法,通过词项-文档共现关系挖掘隐含语义结构;其核心原理在于假设每篇文档由多个潜在主题混合生成,每个主题表现为词的概率分布。该技术显著提升文本理解深度,避免高频词统计的表面化缺陷,广泛应用于舆情监测、内容推荐与竞品分析等场景。在微博等短文本平台,需结合反爬适配、网络用语清洗与主题可解释性增强,才能实现从原始数据到业务洞察的端到端交付。本文聚焦Python技术栈下的实操闭环,覆盖微博数据稳定抓取、LDA主题建模调参及交互式树图可视化。

weixin_29056101的博客 298

pyecharts实战之树图

简易版 code: # 简易版 import os import json from pyecharts.charts import Tree from pyecharts import options as opts data = [{ "name": "flare", "children": [ { "name": "flex", "children": [ {"name": "FlareV

程序的尽头是数学,一日不推导赶不上买买提 3285

完美解决LBP2900打印机安装驱动提示无法识别USB及连接错误等问题(附Win11全新安装支持及卸载方案)

LBP2900打印机虽然经典老旧,但在Win11上依然可以完美使用!许多网上教程都无视安装失败后的问题,在此分享一种全新、100%有效的方法来解决驱动连接错误和无法识别USB设备的问题。无论是新安装还是卸载重装,这个方法都适用。本文整合了通用驱动包,支持Win2000到Win11系统,操作简单,轻松摆脱安装困扰,享受无忧打印体验!

心开始の未来~的博客 2万+

特征图与token的区别以及两者之间的转换

特征图和token之间的联系以及两者之间的转换

mariodf的博客 1012

pyechart 绘制树图

使用python绘制树型图

颹蕭蕭 545

Android Display Graphics #1 整体框架介绍一

手机屏上显示的内容,2D或3D ,如果是 3D 的,不管是 App 还是游戏,或者简单的图片界面,底层都是通过 GPU、 通过 OpenGL(ES)绘制出来的。是Java层的一个类,提供了一系列API,使用这些API可以实现各种的产品经理要求的效果。显示的不同阶段对这块内存的叫法不同,在上层可以是Window、ANnativeWindow、Surface、SurfaceView、layer、buffer,这些本质上没啥区别,可以广泛意义上理解为用于显示内容的那块内存,只不过各个阶段的操作接口不同。

oDwyane03的博客 1387

【Python 实战基础】如何绘制树状图展示Python数据分析师的知识结构

Python如何绘制树状图展示Python数据分析师的知识结构 文件读写 基础语法 字符串处理 文件生成 数据构建

菜鸟实战的博客 3228

ARM Cortex-M系列授权解析:从研发到量产的免费与付费之路

本文深入解析了ARM Cortex-M系列内核从研发到量产过程中的授权模式。研发阶段可利用ARM DesignStart等免费资源进行原型验证,但产品商业化量产则需支付授权费与版税。文章对比了采购商用MCU与自研芯片的成本差异,并探讨了RISC-V作为免费替代方案在IoT领域的应用前景与挑战,为开发者提供了清晰的选型指南。

weixin_29292431的博客 494

保姆级教程:在K230开发板上为张大头步进电机实现位置、速度、回零全功能控制

本文提供了一份详细的K230开发板与张大头步进电机的控制教程,涵盖硬件连接、协议解析、模块化代码实现及实战案例。通过位置、速度和回零功能的全面讲解,帮助开发者快速掌握步进电机的高级控制技术,适用于自动化、机器人等应用场景。

weixin_42629671的博客 710

Pyecharts一文速学-绘制树形图实例+Python代码

之前写pandas和matplotlib的时候说到了想要出一期Pyechart系列数据可视化的文章。比起matplotlib,pyeacharts的图表要丰富而且好看,这取决于它是基于百度团队使用Javascript开发的商业级数据图表。而且pyechart文档全,便于开发和阅读文档,熟练掌握后是一种非常好用的数据可视化的工具之一。当然相比pandas的plot代码会繁琐一些,其中一些操作类方法也是比较复杂的,需要对其有个大概的掌握才能作出满意的图表。

master_hunter的博客 3930

FMC/FSMC/EXMC总线NORFlash/PSRAM接口(异步-复用-不突发/同步-复用-突发)

目录 1 简介 1.1 框图 1.2 接口定义 1.3 读写时序图、时序配置参数 1.4 PSRAM控制器异步工作模式分类 1.5 PSRAM寄存器配置 1.5.1 控制寄存器BCR 1.5.2 片选时序寄存器BTR 1.5.3 写入时序寄存器BWTR 2 FPGA接口设计 2.1 实际配置的时序 2.2 接口信号处理 3 参考文献 1 简介 使...

leixj的博客 2万+

【Python树状结构可视化终极指南】:掌握5大主流工具与实战技巧

掌握Python树状结构数据可视化核心方法,轻松实现文件目录、组织架构等层级数据的清晰呈现。涵盖Graphviz、Echarts、Plotly等5大工具实战技巧,跨平台适用,交互性强。一文精通主流方案,值得收藏。

LiteTrans的博客 1026

ModuleNotFoundError: No module named‘langchain.schema.output parserlangchain.schema is not a package

电脑里现有的langchain库版本与import所需的不同,卸载原有langchain,重新下载最新的langchain。在步骤1后,若仍不可运行。在确保已重新下载新langchain后,重启python后,可正常运行。在版本号中填入所需的langchain版本号,可在requirements.txt查看。运行如下代码时,出现error。

weixin_45751925的博客 1713

SLAM 轨迹评估工具——EVO安装、使用介绍

evo是一款用于视觉里程计和SLAM问题的轨迹评估工具. 核心功能是能够绘制相机的轨迹, 或评估轨迹与真值之间的误差. 支持多种数据集的轨迹格式(TUM、KITTI、EuRoC MAV、ROS的bag), 同时支持这些数据格式之间的相互转换,本文轨迹展示以tum数据格式为例。

u010196944的博客 1万+

模型参数量分析工具

一个模型参数可视化分析工具

JJ-Li的博客 932

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

将echarts图标插入layui弹框,并实现点击跳转页面效果

话不多说,先看效果图,这个是利用layui的弹框,再将echarts的树图插入到弹框内,再给树的根节点也就是flare添加一个点击跳转到百度页面 一、引入相关的文件 <link href="./assets/layui/css/layui.css" /> <script src="./assets/jquery-3.4.1.min.js"></script> <script src="./assets/layui/layui.all.js"></scr

月来better 999

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

为什么选择weibo-analysis-and-visualization?10大功能让微博数据分析效率提升10倍

在社交媒体分析领域,微博数据分析已经成为企业和研究者的重要工具。weibo-analysis-and-visualization是一个功能强大的Python开源项目,专门用于微博数据的抓取、分析和可视化。这个工具集让复杂的微博数据分析变得简单高效,即使是数据分析新手也能快速上手。通过10个核心功能模块,它能将微博数据分析效率提升10倍以上,帮助用户从海量微博数据中挖掘有价值的信息。 ## 🔥

gitblog_00466的博客 313

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Echarts中树状图的使用

【代码】Echarts中树状图的使用。

2201_75474092的博客 1867

echarts实现树图-tree

echarts实现图谱树

古之成大事者,不惟有超世之才,亦必有坚韧不拔之志 4884
上一篇: Day45. 数据分析实战(1):超市运营数据分析
下一篇: Pyecharts树状图:地理图表
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值