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 的边。

Parameters:
G

一个 networkx 图

pos字典

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

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

仅绘制指定的边

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

边的线宽

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

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

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

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

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.FancyArrowPatch 的属性 mutation_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

Returns:
matplotlib.collections.LineCollection 或 matplotlib.patches.FancyArrowPatch 列表

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

Notes

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

确保包含 node_size 作为关键字参数;箭头是根据节点大小绘制的。

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

Examples

>>> 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):  # 更改弧的 alpha 值
...     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)])  # 节点 0 的自环
>>> edge_collection = nx.draw_networkx_edges(G, pos=nx.circular_layout(G), ax=ax)
>>> self_loop_fap = ax.patches[0]

另请参见 NetworkX 绘图示例: https://networkx.org/documentation/latest/auto_examples/index.html