如何使用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关系图可以使我们更快的看出人物之间的关系。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2023年12月13日
下一篇 2023年12月13日

相关推荐