如何使用Python的Pyecharts做一个数据可视化的Graph 关系图?

前言

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

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,让我们开始吧!Python有很多用于数据可视化的库,其中最流行的是Matplotlib、Seaborn和Plotly。我将为您提供一些实战示例,以便您了解如何使用这些库进行数据可视化。 1. Matplotlib Matplotlib是Python中最流行的数据可视化库之一。它可以创建各种类型的表,包括折线、散点、柱状、饼和直方等。 以下是一个简单的折线示例: ```python import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] plt.plot(x, y) plt.xlabel('X Label') plt.ylabel('Y Label') plt.title('Line Chart') plt.show() ``` 此代码将创建一个简单的折线,其中x轴表示数字1到5,y轴表示2到10。 2. Seaborn Seaborn是基于Matplotlib的另一个Python数据可视化库。它提供了一些更高级的绘功能,包括热、分类和时间序列等。 以下是一个简单的分类示例: ```python import seaborn as sns import pandas as pd data = pd.read_csv('data.csv') sns.catplot(x='Category', y='Value', data=data, kind='bar') plt.xlabel('Category') plt.ylabel('Value') plt.title('Bar Chart') plt.show() ``` 此代码将从CSV文件中读取数据,并创建一个简单的分类,其中x轴表示类别,y轴表示值。 3. Plotly Plotly是一个交互式数据可视化库,可以创建美观、交互式的表和形。 以下是一个简单的散点示例: ```python import plotly.graph_objs as go x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] trace = go.Scatter(x=x, y=y, mode='markers') data = [trace] layout = go.Layout(title='Scatter Plot', xaxis={'title': 'X Label'}, yaxis={'title': 'Y Label'}) fig = go.Figure(data=data, layout=layout) fig.show() ``` 此代码将创建一个简单的散点,其中x轴表示数字1到5,y轴表示2到10。 希望这些示例可以帮助您开始使用Python进行数据可视化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值