Graph 关系图通常用于分析具有复杂性的数据。例如,如果你想探索不同实体之间的关系,你可以使用Graph关系图来描绘这些关系。Graph关系图通常用于社交网络分析、网络安全分析和生物信息学科研等等领域,以及其他任何需要探索复杂关系的应用场景。
温馨提示:以下是本篇文章的正文内容,下面的案例可供参考
pyecharts是什么? pyecharts 是一个用于生成Echarts图表的类型。 Echarts 是百度开源的一个数据可视化 JS 库。 用 Echarts 生成的图可视化效果非常棒, pyecharts 是为了与 Python 进行对接,方便在 Python 中直接使用数据生成图。
Graph关系图是什么?图中的数据元素,我们称之为顶点,图至少有一个顶点(非空有穷集合) 对应到好友关系图,每一个用户就代表一个顶点。 边,顶点之间的关系用边表示。 对应到好友关系图,两个用户是好友的话,那两者之间就存在一条边。 度,度表示一个顶点包含多少条边,在有向图中,还分为出度和入度,出度表示从该顶点出去的边的条数,入度表示进入该顶点的边的条数。 对应到好友关系图,度就代表了某个人的好友数量。
代码如下(示例):
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 。
出现如下界面:
代码如下(示例):
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’ -------> 表示获取图片的路径
代码如下(实例):
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’] -----> 表示第二个结点对第一个结点是单向的
代码如下(实例):
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关系图可以使我们更快的看出人物之间的关系。