draw_networkx_edges#

draw_networkx_edges(G, pos, edgelist=None, width=1.0, edge_color='k', style='solid', alpha=None, arrowstyle=None, arrowsize=10, edge_cmap=None, edge_vmin=None, edge_vmax=None, ax=None, arrows=None, label=None, node_size=300, nodelist=None, node_shape='o', connectionstyle='arc3', min_source_margin=0, min_target_margin=0, hide_ticks=True)[source]#

绘制图 G 的边。

这仅绘制图 G 的边。

参数:
G

一个 NetworkX 图

pos字典

一个以节点为键,位置为值的字典。位置应是长度为 2 的序列。

edgelist边元组的集合 (默认=G.edges())

仅绘制指定的边

width浮点数或浮点数数组 (默认=1.0)

边的线宽

edge_color颜色或颜色数组 (默认=’k’)

边颜色。可以是单个颜色,也可以是与 edgelist 长度相同的颜色序列。颜色可以是字符串或 rgb (或 rgba) 浮点数元组,范围从 0-1。如果指定了数值,它们将使用 edge_cmap 和 edge_vmin, edge_vmax 参数映射到颜色。

style字符串或字符串数组 (默认=’solid’)

边的线型,例如:‘-’, ‘–’, ‘-.’, ‘:’ 或 ‘solid’ 或 ‘dashed’ 等单词。可以是单个线型,也可以是与边列表长度相同的线型序列。如果提供的线型少于边数,线型将循环使用。如果提供的线型多于边数,线型将按顺序使用,不会耗尽。此外,(offset, onoffseq) 元组也可以用作线型,而不是字符串。(参见 matplotlib.patches.FancyArrowPatch: linestyle)

alpha浮点数或浮点数数组 (默认=None)

边的透明度。可以是一个单一的 alpha 值,此时它将应用于所有指定的边。否则,如果它是一个数组,alpha 的元素将按顺序应用于颜色(如有必要,alpha 会多次循环使用)。

edge_cmapMatplotlib 颜色映射表,可选

用于映射边强度的颜色映射表

edge_vmin, edge_vmax浮点数,可选

边颜色映射表缩放的最小值和最大值

axMatplotlib Axes 对象,可选

在指定的 Matplotlib 轴上绘制图。

arrows布尔值或 None,可选 (默认=None)

如果为 None,有向图使用 FancyArrowPatch 绘制箭头,而无向图为了速度通过 LineCollection 绘制边。如果为 True,使用 FancyArrowPatches 绘制箭头(可弯曲且时尚)。如果为 False,使用 LineCollection 绘制边(线性且快速)。

注意:箭头将与边的颜色相同。

arrowstyle字符串或字符串列表 (对于有向图,默认=’-|>’)

对于有向图且 arrows==True,默认值为 ‘-|>’;对于无向图,默认值为 ‘-‘。

有关更多选项,请参见 matplotlib.patches.ArrowStyle

arrowsize整数或整数列表 (默认=10)

对于有向图,选择箭头头的长度和宽度。有关更多信息,请参见 matplotlib.patches.FancyArrowPatchmutation_scale 属性。

connectionstyle字符串或字符串的可迭代对象 (默认=”arc3”)

传递 connectionstyle 参数以创建圆角半径 rad 的弯曲弧线。例如,connectionstyle='arc3,rad=0.2'。有关更多信息,请参见 matplotlib.patches.ConnectionStylematplotlib.patches.FancyArrowPatch。如果是可迭代对象,索引表示 MultiGraph 的第 i 个边键。

node_size标量或数组 (默认=300)

节点的大小。虽然此函数不绘制节点,但节点大小用于确定边的位置。

nodelist列表,可选 (默认=G.nodes())

这提供了 node_size 数组(如果它是一个数组)的节点顺序。

node_shape字符串 (默认=’o’)

用于节点的标记,用于确定边的位置。规范是一个 matplotlib.markers 标记,例如 ‘so^>v<dph8’ 中的一个。

labelNone 或 字符串

图例标签

min_source_margin整数或整数列表 (默认=0)

边源头处的最小边距(间隙)。

min_target_margin整数或整数列表 (默认=0)

边目标处末端的最小边距(间隙)。

hide_ticks布尔值,可选

隐藏坐标轴刻度。当为 True (默认值) 时,将从坐标轴中移除刻度和刻度标签。要将刻度和刻度标签设置为 pyplot 默认值,请使用 hide_ticks=False

返回值:
matplotlib.collections.LineCollection or a list of matplotlib.patches.FancyArrowPatch

如果 arrows=True,返回 FancyArrowPatches 的列表。如果 arrows=False,返回 LineCollection。如果 arrows=None (默认值),则如果 G 是无向图,返回 LineCollection,否则返回 FancyArrowPatches 的列表。

注意

对于有向图,箭头绘制在末端。可以通过关键字 arrows=False 或传递末端没有箭头的 arrowstyle 来关闭箭头。

务必包含 node_size 作为关键字参数;绘制箭头时会考虑节点的大小。

无论 arrows 的值如何或 G 是否有向,自环始终使用 FancyArrowPatch 绘制。当 arrows=Falsearrows=NoneG 是无向图时,与自环对应的 FancyArrowPatches 不会被明确返回。应通过 Axes.patches 属性访问它们(参见示例)。

示例

>>> G = nx.dodecahedral_graph()
>>> edges = nx.draw_networkx_edges(G, pos=nx.spring_layout(G))
>>> G = nx.DiGraph()
>>> G.add_edges_from([(1, 2), (1, 3), (2, 3)])
>>> arcs = nx.draw_networkx_edges(G, pos=nx.spring_layout(G))
>>> alphas = [0.3, 0.4, 0.5]
>>> for i, arc in enumerate(arcs):  # change alpha values of arcs
...     arc.set_alpha(alphas[i])

与自环对应的 FancyArrowPatches 不总是返回,但始终可以通过 matplotlib.Axes 对象的 patches 属性访问。

>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots()
>>> G = nx.Graph([(0, 1), (0, 0)])  # Self-loop at node 0
>>> edge_collection = nx.draw_networkx_edges(G, pos=nx.circular_layout(G), ax=ax)
>>> self_loop_fap = ax.patches[0]

另请参阅 NetworkX 绘图示例:https://networkx.cn/documentation/stable/auto_examples/index.html