**Prerequisite: ****networkx**

There are many kinds of definitions of the barbell graphs. The most commonly used one is an n-barbell graph which is a simple graph obtained by connecting two copies of a complete graph with n nodes. In this article, we are going to see how to use a barbell graph using python.

**Examples of n-barbell graph:**

**Example 1:**

If N=3 Nodes then the graph will be shown as figures:

**Example 2:**

If N=4 Nodes then the graph will be shown as figures:

#### Analysis:

1.Total number of nodes(In n-barbell graph):

The Total number of Nodes = 2*N

2.Total number of edges(In n-barbell graph):

Total number of edges= 2*number of edgesin complete graph + 1 =2*(n*(n-1)/2)+1 =n*(n-1) + 1

**Properties:**

- The barbell graph contains cycles in it.
- The barbell graph is connected every two nodes have a path between them.
- It has a bridge between 2 complete graphs.
- Bridge may and may not have nodes in it.

**Barbell Graphs using Python:**

It is realized in python using the barbell_graph(n, m) function of the networkx library and matplotlib library.

**networkx library**Library in python used for realizing and analyzing different kinds of graphs(data structure) in python. For installation use this command:

pip install networkx

**matplotlib library:**Library in python used for realizing and analyzing different kinds of functions in python. For installation use this command:

pip install matplotlib

**barbell_graph(n, m)**: It returns a Barbell Graph with two complete graphs of n nodes which are connected via m node bridge in between.

**Approach:**

- Import networkx and matplotlib libraries.
- Create a networkx graph object G using nx.barbell_graph(n, m) function as mentioned above.
- Use nx.draw_networkx(G) function to print the graph.

**Example 1:**

## Python

`# import module` `import` `networkx as nx ` `import` `matplotlib.pyplot as plt ` ` ` `# graph created` `res ` `=` `nx.barbell_graph(` `4` `, ` `2` `) ` `nx.draw_networkx(res)` |

**Explanation: **

As we passed (4,2) as parameter’s to nx.barbell_graph() function is assigned a graph with 4 node clusters joined by a bridge of 2 nodes. And finally, we got the output as a view of graph G using the draw_networkx(G) function.

**Example 2:**

## Python3

`import` `networkx as nx ` `import` `matplotlib.pyplot as plt` ` ` `res ` `=` `nx.barbell_graph(` `4` `, ` `0` `) ` `nx.draw_networkx(res)` |

**Output:**

Attention geek! Strengthen your foundations with the **Python Programming Foundation** Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the **Python DS** Course. And to begin with your Machine Learning Journey, join the **Machine Learning – Basic Level Course**