Pyecharts(v1.x):Graph(关系图)

901 阅读3分钟

前言

社交网络图
有向图
无向图
多重有向图
多重无向图
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

代码

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


# 在初始化graph对象的时候,可以输入一些初始化参数,比如画布的宽高
class Graph( # 初始化配置项,参考 `global_options.InitOpts` 
           init_opts: opts.InitOpts = opts.InitOpts(width='xxxpx',height='xxxxpx')
           )
           
           

#add()函数
#add()函数是Graph类的函数,所以在初始化graph实例化对象之后,调用add()函数
#add()函数的参数解释:

# 系列名称,用于 tooltip 的显示,legend 的图例筛选。 
series_name: str # 该参数可以是空字符串,因为在调用set_global_opts()函数的时候,还可以指定主标题和副标题。

# 关系图节点数据项列表,参考 `opts.GraphNode` 
nodes: Sequence[Union[opts.GraphNode, dict]], 

# 关系图节点间关系数据项列表,参考 `opts.GraphLink` 
links: Sequence[Union[opts.GraphLink, dict]], 

# 关系图节点分类的类目列表,参考 `opts.GraphCategory` 
categories: Union[Sequence[Union[opts.GraphCategory, dict]], None] = None, 

# 是否选中图例。 
is_selected: bool,默认是True, 

# 是否在鼠标移到节点上的时候突出显示节点以及节点的边和邻接节点。 
is_focusnode: bool,默认是True, 

# 是否开启鼠标缩放和平移漫游。 
is_roam: bool = True, 

# 节点是否可拖拽,只在使用力引导布局的时候有用。 
is_draggable: bool = False, 

# 是否旋转标签,默认不旋转。 
is_rotate_label: bool = False,

# 图的布局。可选: 
# 'none' 不采用任何布局,使用节点中提供的 x,y 作为节点的位置。 
# 'circular' 采用环形布局。 
# 'force' 采用力引导布局。 
layout: str = "force", 

# 关系图节点标记的图形。 
# ECharts 提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 
# 'diamond', 'pin', 'arrow', 'none' 
# 可以通过 'image://url' 设置为图片,其中 URL 为图片的链接,或者 dataURI。 
symbol: Optional[str] = None,

# 关系图节点标记的大小
# 可以设置成诸如 10 这样单一的数字 
# 也可以用数组分开表示宽和高,例如 [20, 10] 表示标记宽为20,高为10。 
symbol_size: types.Numeric = 10, 

# 边的两个节点之间的距离,这个距离也会受 repulsion。 
# 支持设置成数组表达边长的范围,此时不同大小的值会线性映射到不同的长度。值越小则长度越长。 edge_length: Numeric = 50, 

# 节点受到的向中心的引力因子。该值越大节点越往中心点靠拢。 
gravity: Numeric = 0.2, 

# 节点之间的斥力因子。
# 支持设置成数组表达斥力的范围,此时不同大小的值会线性映射到不同的斥力。值越大则斥力越大
repulsion: Numeric = 50, 

# Graph 图节点边的 Label 配置(即在边上显示数据或标注的配置) 
edge_label: types.Label = None, 

# 边两端的标记类型,可以是一个数组分别指定两端,也可以是单个统一指定。
# 默认不显示标记,常见的可以设置为箭头,如下:edgeSymbol: ['circle', 'arrow']
edge_symbol: Optional[str] = None, 

# 边两端的标记大小,可以是一个数组分别指定两端,也可以是单个统一指定。
edge_symbol_size: Numeric = 10,


# 标签配置项,参考 `series_options.LabelOpts`
label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),

# 关系边的公用线条样式。
linestyle_opts: Union[opts.LineStyleOpts, dict] = opts.LineStyleOpts(),

# 提示框组件配置项,参考 `series_options.TooltipOpts`
tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,

# 图元样式配置项,参考 `series_options.ItemStyleOpts`
itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,