使用Python的Pyecharts创建数据可视化的Graph关系图教程

文章目录

  • 前言
  • 一、Pyecharts是什么?
  • 二、Graph关系图是什么?
  • 三、使用步骤
  • 1.引入库
  • 2.读入数据
  • 3.人物关系
  • 4.结果
  • 总结
  • 前言

    Graph 关系图通常用于分析具有复杂性的数据。例如,如果你想探索不同实体之间的关系,你可以使用Graph关系图来描绘这些关系。Graph关系图通常用于社交网络分析、网络安全分析和生物信息学科研等等领域,以及其他任何需要探索复杂关系的应用场景。

    温馨提示:以下是本篇文章的正文内容,下面的案例可供参考

    一、Pyecharts是什么?

    pyecharts是什么? pyecharts 是一个用于生成Echarts图表的类型。 Echarts 是百度开源的一个数据可视化 JS 库。 用 Echarts 生成的图可视化效果非常棒, pyecharts 是为了与 Python 进行对接,方便在 Python 中直接使用数据生成图。

    二、Graph关系图是什么?

    Graph关系图是什么?图中的数据元素,我们称之为顶点,图至少有一个顶点(非空有穷集合) 对应到好友关系图,每一个用户就代表一个顶点。 边,顶点之间的关系用边表示。 对应到好友关系图,两个用户是好友的话,那两者之间就存在一条边。 度,度表示一个顶点包含多少条边,在有向图中,还分为出度和入度,出度表示从该顶点出去的边的条数,入度表示进入该顶点的边的条数。 对应到好友关系图,度就代表了某个人的好友数量。

    三、使用步骤

    1.引入库

    代码如下(示例):

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

    可能出现from pyecharts import options as opts报错:

    pyecharts是一个十分强大的python绘图库,但是使用过程中或多或少会遇到一些问题,比如在使用pyecharts导入options包时可能就遇到无法导入的问题。

    问题分析:

    其实这是pyecharts版本不匹配导致的。

    解决问题:

    卸载原先版本

    打开命令提示符,cd进入自己python的安装目录,输入pip uninstall pyecharts(卸载pyecharts),出现如下界面:

    重装pyecharts

    命令:pip install pyecharts==1.9 -i https://pypi.tuna.tsinghua.edu.cn/simple Simple Index

    出现如下界面:

    查看是否安装成功

    命令:pip show pyecharts 。

    出现如下界面:

    2.读入数据

    代码如下(示例):

    nodes_data = [
        opts.GraphNode(name="海绵宝宝", symbol_size=80,symbol='image://海绵宝宝.jfif'),
        opts.GraphNode(name="派大星", symbol_size=40,symbol='image://派大星.jfif'),
        opts.GraphNode(name="小蜗", symbol_size=40,symbol='image://小蜗.jfif'),
        opts.GraphNode(name="蟹老板", symbol_size=60,symbol='image://蟹老板.jfif'),
        opts.GraphNode(name="章鱼哥", symbol_size=40,symbol='image://章鱼哥.jfif'),
        opts.GraphNode(name="泡芙老师", symbol_size=60,symbol='image://泡芙老师.jfif'),
        opts.GraphNode(name="痞老板", symbol_size=60,symbol='image://痞老板.jfif'),
        opts.GraphNode(name="拉里", symbol_size=40,symbol='image://拉里.jfif'),
        opts.GraphNode(name="射线恶魔", symbol_size=40,symbol='image://射线恶魔.jfif'),
        opts.GraphNode(name="珍珍", symbol_size=40,symbol='image://珍珍.jfif'),
        
    ]
    
    

    该处使用的是相对路径读取数据。先把图片命名好,然后再把相对应的图片读取进来。

    代码说明:
    name=“xxx” ——-> 表示命名图片名称
    symbol_size=xx ——> 表示设置关系图节点标记的大小
    symbol=‘xxxx’ ——-> 表示获取图片的路径

    3.人物关系

    代码如下(实例):

    links_data = [
        opts.GraphLink(source="海绵宝宝", target="派大星", value='好友',symbol = ['arrow','arrow']),
        opts.GraphLink(source="海绵宝宝", target="小蜗", value='好友',symbol = ['arrow','arrow']),
        opts.GraphLink(source="海绵宝宝", target="章鱼哥", value='邻居',symbol = ['arrow','arrow']),
        opts.GraphLink(source="海绵宝宝", target="蟹老板", value='雇佣',symbol = ['arrow',None]),
        opts.GraphLink(source="海绵宝宝", target="泡芙老师", value='师徒',symbol = ['arrow','arrow']),
        opts.GraphLink(source="海绵宝宝", target="痞老板", value='敌人',symbol = ['arrow','arrow']),
        opts.GraphLink(source="蟹老板", target="章鱼哥", value='雇佣',symbol = [None,'arrow']),
        opts.GraphLink(source="蟹老板", target="痞老板", value='敌人',symbol = ['arrow','arrow']),
        opts.GraphLink(source="海绵宝宝", target="拉里", value='崇拜',symbol=[None,'arrow']),
        opts.GraphLink(source="海绵宝宝", target="射线恶魔", value='亦敌亦友',symbol = ['arrow','arrow']),
        opts.GraphLink(source="海绵宝宝", target="珍珍", value='好友',symbol = ['arrow','arrow']),
        opts.GraphLink(source="蟹老板", target="珍珍", value='父女',symbol=[None,'arrow']),
    ]
    

    该处说明海绵宝宝与派大星、小蜗、章鱼哥、蟹老板、泡芙老师、痞老板、拉里、射线恶魔、珍珍这些人物的关系,以及这些关系是否为单向或者双向的。

    代码说明:
    source ——> 表示第一个结点
    target ——-> 表示第二个结点
    value ——-> 表示结点之间的关系
    symbol=[‘arrow’,‘arrow’] —–> 表示两个结点都是双向的
    symbol=[‘arrow’,‘None’] —–> 表示第一个结点对第二个结点是单向的
    symbol=[‘None’,‘arrow’] —–> 表示第二个结点对第一个结点是单向的

    4.结果

    代码如下(实例):

    c = (
        Graph()
        .add(
            "",
            nodes_data,
            links = links_data,
            repulsion=1000,
            is_draggable = True,
            edge_label=opts.LabelOpts(
                is_show=True, position="middle", formatter="关系:{c}",
            ),
            label_opts = opts.LabelOpts(color='black',font_size=20)
        )
    )
    c.render_notebook()
    

    代码说明:
    nodes_data —-> 表示结点数据集,存储结点的名称。
    links_data ——> 表示连接数据集,存储结点之间的连接信息。
    repulsion=xxx —-> 表示节点之间的斥力因子
    is_draggable = True/False —-> 表示节点是否可拖拽,只在使用力引导布局的时候有用
    edge_label=opts.LabelOpts —-> 表示Graph 图节点边的 Label 配置(即在边上显示数据或标注的配置)

    最后代码运行出来的结果图:

    总结

    温馨提示:这里是对本文章进行总结
    首先对《海绵宝宝》这部动画片里面的主人公海绵宝宝分析他与其他人物的关系,通过使用python的pyecharts做一个可视化的Graph关系图,其中使用了很多的属性来绘制。从而,可以使我们更快、更方便的看出了海绵宝宝与其他人物的关系是怎么样的。总的来说,Graph关系图可以使我们更快的看出人物之间的关系。

    物联沃分享整理
    物联沃-IOTWORD物联网 » 使用Python的Pyecharts创建数据可视化的Graph关系图教程

    发表评论