牛批了,python也能做思维导图

Python技术

共 6488字,需浏览 13分钟

 ·

2021-04-04 08:31




思维导图是一种形象的展示各级隶属关系的图形,它具有较强的逻辑性和可视性,能够帮助理清工作思路。

今天教大家如何用pyecharts画思维导图。

一、基本思维导图

from pyecharts import options as opts
from pyecharts.charts import Tree
data = [
    {
        "name""python变量",
        "children": [
            {"name""字符串",
            "children": [{"name""实例1:'abc'"}, {"name""实例2:'123abc'"}]},
            {"name""列表",
            "children": [{"name""实例1:[a,b,c]"}, {"name""实例2:'[1,2,3]"}]},
            {"name""字典",
            "children": [{"name""实例1:{1:'a','2':'b'}}"}, {"name""实例2:'{a:[1,2,3],'2':(1,2))}"}]},
            {"name""元组",
             "children": [{"name""实例1:(1,2,3)}"}, {"name""实例2:(a,b,c)"}]}
]}
]
c = (
    Tree()
    .add("", data)
)
c.render_notebook()

下面咱们解析一下数据格式:

整个数据是1个列表,列表内只有1个字典元素,字典以“name”为键的值为思维导图的起点,以“children”为键的值为name的下一节点,其值仍为列表格式,依次类推。

二、向左发散思维导图

from pyecharts import options as opts
from pyecharts.charts import Tree
data = [
    {
        "name""python变量",
        "children": [
            {"name""字符串",
            "children": [{"name""实例1:'abc'"}, {"name""实例2:'123abc'"}]},
            {"name""列表",
            "children": [{"name""实例1:[a,b,c]"}, {"name""实例2:'[1,2,3]"}]},
            {"name""字典",
            "children": [{"name""实例1:{1:'a','2':'b'}}"}, {"name""实例2:'{a:[1,2,3],'2':(1,2))}"}]},
            {"name""元组",
             "children": [{"name""实例1:(1,2,3)}"}, {"name""实例2:(a,b,c)"}]}
]}
]
c = (
    Tree()
    .add(""
        data,
        collapse_interval=3,
        layout = "orthogonal",
        orient="LR",)
)
c.render_notebook()

参数介绍:

collapse_interval:代表分支之间的间隔  
orient:正交布局,对应有 水平 方向的 从左到右,从右到左;以及垂直方向的从上到下,从下到上。取值分别为 'LR' , 'RL''TB''BT'

三、径向分布思维导图

所谓径向,即是不像上面那种垂直或者水平分布,而是以根节点为圆心,每一层节点为环,一层层向外发散绘制而成的布局

from pyecharts import options as opts
from pyecharts.charts import Tree
data = [
    {
        "name""python变量",
        "children": [
            {"name""字符串",
            "children": [{"name""实例1:'abc'"}, {"name""实例2:'123abc'"}]},
            {"name""列表",
            "children": [{"name""实例1:[a,b,c]"}, {"name""实例2:'[1,2,3]"}]},
            {"name""字典",
            "children": [{"name""实例1:{1:'a','2':'b'}}"}, {"name""实例2:'{a:[1,2,3],'2':(1,2))}"}]},
            {"name""元组",
             "children": [{"name""实例1:(1,2,3)}"}, {"name""实例2:(a,b,c)"}]}
]}
]
c = (
    Tree()
    .add(""
        data,
        collapse_interval=3,
        layout="radial",)
)
c.render_notebook()

layout:代表布局,有2种形式,上述两种为'orthogonal'正交分布,'radial'代表径向分布,请大家注意,径向分布下orient参数是没有意义的

四、圆形思维导图

from pyecharts import options as opts
from pyecharts.charts import Tree
import requests,json
response=requests.get('https://echarts.apache.org/examples/data/asset/data/flare.json')
data=json.loads(response.text)
c = (
    Tree()
    .add(""
        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")
    )
)
c.render_notebook()

参数介绍:

pos_top:tree组件离容器上侧的距离  
pos_bottom:tree 组件离容器下侧的距离  
symbol:标记的图形
symbol_size:标记的大小


-完-

PS公号内回复「Python」即可进入Python 新手学习交流群,一起 100 天计划!


老规矩,兄弟们还记得么,右下角的 “在看” 点一下如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!

代码获取方式

识别文末二维码,回复:python


浏览 51
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报