PyEcharts 树形图表之矩形树图——头歌

第1关:TreeMap:矩形树图(一)

from PreTest import *
from pyecharts import options as opts
from pyecharts.render import make_snapshot
from snapshot_phantomjs import snapshot

from pyecharts.charts import TreeMap


data = [
    {"value": 40, "name": "我是A"},
    {
        "value": 180,
        "name": "我是B",
        "children": [
            {
                "value": 76,
                "name": "我是B.children",
                "children": [
                    {"value": 12, "name": "我是B.children.a"},
                    {"value": 28, "name": "我是B.children.b"},
                    {"value": 20, "name": "我是B.children.c"},
                    {"value": 16, "name": "我是B.children.d"},
                ],
            }
        ],
    },
]

def treemap_chart() -> TreeMap:
    # ********* Begin *********#  
    treemap = (
        TreeMap()
        .add(
            series_name="演示数据",
            data=data,
            label_opts=opts.LabelOpts(formatter="{b}", position="inside"),
        )
        .set_global_opts(title_opts=opts.TitleOpts(title="TreeMap-基本示例"))
    )
    # ********** End **********#
    return treemap

make_snapshot(snapshot, treemap_chart().render("Result/render.html"), 'StudentAnswer/student_answer.png') # 输出图片
make_snapshot(snapshot, treemap_base(data).render(), "StandardAnswer/task1/standard_answer_1.png")

第2关:TreeMap:矩形树图(二)

from PreTest import *
from pyecharts import options as opts
from pyecharts.render import make_snapshot
from snapshot_phantomjs import snapshot

from pyecharts.charts import TreeMap
import json


with open("treemap.json", "r", encoding="utf-8") as f:
    data = json.load(f)


def treemap_chart() -> TreeMap:
    # ********* Begin *********#  
    treemap = (
        TreeMap()
        .add(
            series_name="演示数据",
            data=data,
            levels=[
                # 第一层配置
                opts.TreeMapLevelsOpts(
                    color_saturation=[0.3, 0.6],
                    treemap_itemstyle_opts=opts.TreeMapItemStyleOpts(
                        border_color="#555",
                        border_width=4,
                        gap_width=4
                    ),
                    label_opts=opts.LabelOpts(is_show=True, position="inside")
                ),
                # 第二层配置
                opts.TreeMapLevelsOpts(
                    color_saturation=[0.3, 0.6],
                    treemap_itemstyle_opts=opts.TreeMapItemStyleOpts(
                        border_color_saturation=0.7,
                        border_width=2,
                        gap_width=2
                    ),
                    label_opts=opts.LabelOpts(is_show=True, position="inside")
                ),
                # 第三层配置
                opts.TreeMapLevelsOpts(
                    color_saturation=[0.3, 0.5],
                    treemap_itemstyle_opts=opts.TreeMapItemStyleOpts(
                        border_color_saturation=0.6,
                        gap_width=1
                    ),
                    label_opts=opts.LabelOpts(is_show=True, position="inside")
                ),
                # 第四层配置
                opts.TreeMapLevelsOpts(
                    color_saturation=[0.3, 0.5],
                    label_opts=opts.LabelOpts(is_show=True, position="inside")
                )
            ]
        )
        .set_global_opts(title_opts=opts.TitleOpts(title="TreeMap-Levels-配置"))
    )
    # ********** End **********#
    return treemap

make_snapshot(snapshot, treemap_chart().render("Result/render.html"), "StudentAnswer/student_answer.png") # 输出图片
make_snapshot(snapshot, treemap_levels(data).render(), "StandardAnswer/task2/standard_answer_2.png")

### 如何在 PyEcharts 中使用树图创建树形图 #### 创建树图的基础方法 PyEcharts 提供了一个名为 `Tree` 的类,专门用于绘制树状结构的图。该类支持通过初始化参数来自定义图的行为和外观[^1]。 以下是构建一个基础树图的关键步骤: 1. **导入必要的模块** 需要从 `pyecharts.charts` 导入 `Tree` 类,并从其他子模块中引入所需的配置选项。 2. **准备数据** 树图的数据通常是一个嵌套字典列示节点及其子节点的关系。每个节点可以包含名称、值和其他属性。 3. **实例化并渲染图** 使用 `Tree()` 实例化对象后,调用其方法完成图的配置和渲染。 #### 示例代码 以下是一段完整的 Python 代码示例,演示如何利用 PyECharts 绘制一棵简单的树图: ```python from pyecharts import options as opts from pyecharts.charts import Tree data = [ { "name": "父节点", "children": [ {"name": "子节点A"}, {"name": "子节点B", "children": [{"name": "孙节点"}]}, ], } ] tree_chart = ( Tree() .add( series_name="层次结构", data=data, initial_tree_depth=2, # 设置初始展开深度 orient="TB", # 定义方向 (Top-Bottom) label_opts=opts.LabelOpts(position="top"), ) .set_global_opts(title_opts=opts.TitleOpts(title="树图示例")) ) tree_chart.render("tree_example.html") # 渲染到 HTML 文件 ``` 上述代码会生成一个具有两层结构的树图,并将其保存为 `tree_example.html` 文件。用户可以在浏览器中打开此文件查看效果[^2]。 #### 自定义树图的布局与样式 除了基本功能外,还可以进一步调整树图的显示方式。例如: - 修改树的方向 (`orient`):可以选择 `"LR"` 示左至右排列,或者 `"RL"` 反向排列。 - 调整字体大小或颜色:通过 `label_opts` 参数实现更精细的文字控制。 - 增加交互特性:如点击事件响应等高级功能。 这些扩展操作均需基于官方文档提供的 API 进行深入探索。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值