Syntax error How to set NetworkX edge labels offset in Matplotlib?

How to set NetworkX edge labels offset in Matplotlib?



To set the networkx edge labels offset, we can take the following steps −

  • Set the figure size and adjust the padding between and around the subplots.
  • Initialize a graph with edges, name, or graph attributes.
  • Add multiple nodes.
  • Add all the edges using add_edge_from() method.
  • Position the nodes using Fruchterman-Reingold force-directed algorithm.
  • Draw the graph G with Matplotlib.
  • Draw edge labels.
  • To display the figure, use show() method.

Example

import matplotlib.pylab as plt
import networkx as nx

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

G = nx.DiGraph()

G.add_nodes_from([1, 2, 3, 4])
G.add_edges_from([(1, 2), (2, 3), (3, 4), (4, 1), (1, 3)])

pos = nx.spring_layout(G)

for u, v, d in G.edges(data=True):
   d['weight'] = 3

edges, weights = zip(*nx.get_edge_attributes(G, 'weight').items())

nx.draw(G, pos, node_color='b', edge_color=weights, width=2, with_labels=True)

nx.draw_networkx_edge_labels(
   G, pos,
   {(1, 2): "x", (2, 3): "y", (3, 4): "w",
      (4, 1): "z", (1, 3): "v"}, label_pos=0.75
)
plt.show()

Output

Updated on: 2021-06-10T11:57:42+05:30

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements