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.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
。
- 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=False
或arrows=None
且G
为无向图时,对应于自环的 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