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.FancyArrowPatch
的mutation_scale
属性。- connectionstyle字符串或字符串的可迭代对象 (默认=”arc3”)
传递 connectionstyle 参数以创建圆角半径 rad 的弯曲弧线。例如,connectionstyle='arc3,rad=0.2'。有关更多信息,请参见
matplotlib.patches.ConnectionStyle
和matplotlib.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=False
或arrows=None
且G
是无向图时,与自环对应的 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