Skip to content
Related Articles

Related Articles

Improve Article

How to Create and Customize Venn Diagrams in Python?

  • Last Updated : 15 Mar, 2021

Venn Diagrams are useful for illustrating relations between two or more groups. We can easily see commonalities and differences between different groups. In this article, we are going to discuss how to create and customize Venn diagrams in Python:

Simple Venn Diagram:

Installation:

Install matplotlib-venn Library in your computer (Here we used the tool Pycharm) go to the terminal and use the following command.



pip install matplotlib-venn

After installing the library create a new python file and import the libraries as explained in the below program:

Python3




# import modules
from matplotlib_venn import venn2 
from matplotlib import pyplot as plt
  
# depict venn diagram
venn2(subsets = (50, 10, 7), set_labels = ('Group A', 'Group B'))
plt.show()

Output:

The statement venn2(subsets = (30, 10, 5), set_labels = (‘Group A’, ‘Group B’)) refers to the subset’s parameter is a 3 element list where the numbers 50, 10, 7 correspond to Ab, aB, AB.

Ab = Contained in group A, but not B

aB = Contained in group B, but not A

AB = Contained in both group A and B



The set_labels parameter allows you to label your two groups in the Venn diagram. The show() function in pyplot module of matplotlib library is used to display all figures.

Below are various examples that depict how to create and customize Venn diagrams:

Example 1: 

Venn Diagrams automatically size the circle depending upon the magnitude of items allotted. However, we can disable this by using an unweighted Venn Diagram, so the circles appear in the same size irrespective of the items allotted.

The default colors of Venn Diagrams are red and green now we will customize the colors orange and blue using set_colors parameter. The alpha parameter is used to control the transparency.

Python3




# import modules
from matplotlib_venn import venn2_unweighted 
from matplotlib import pyplot as plt
  
# depict venn diagram
venn2_unweighted(subsets = (50, 10, 7),
                 set_labels = ('Group A'
                               'Group B'),
                 set_colors=("orange",
                             "blue"),alpha=0.7)
plt.show()

Output:

Example 2:

We can customize the outline of the circle note it works on weighted Venn Diagrams which are shown in the below program.



Python3




# import modules
from matplotlib_venn import venn2,venn2_circles
from matplotlib import pyplot as plt
  
# depict venn diagram
venn2(subsets = (50, 10, 7),
      set_labels = ('Group A'
                    'Group B'),
      set_colors=("orange",
                  "blue"),alpha=0.7)
  
# add outline
venn2_circles(subsets=(50,10,7)) 
plt.show()

Output:

Example 3:

We can also customize the outline of the circle with dashed line style and line width:

Python3




# import modules
from matplotlib_venn import venn2, venn2_circles
from matplotlib import pyplot as plt
  
# depict venn diagram
venn2(subsets=(50, 10, 7), 
      set_labels=('Group A', 'Group B'),
      set_colors=("orange", "blue"), alpha=0.7)
  
# outline of the circle with defined 
# line style and line width
venn2_circles(subsets=(50, 10, 7), 
              linestyle="dashed", linewidth=2)
plt.show()

Output:

Example 4:

A title can be assigned to Venn diagrams using the title() method.



Python3




# import modules
from matplotlib_venn import venn2, venn2_circles
from matplotlib import pyplot as plt
  
# depict venn diagram
venn2(subsets=(50, 10, 7), 
      set_labels=('Group A', 'Group B'),
      set_colors=("orange", "blue"), alpha=0.7)
  
# add outline
venn2_circles(subsets=(50, 10, 7), 
              linestyle="dashed"
              linewidth=2)
  
# assign title of the venn diagram
plt.title("Venn Diagram in geeks for geeks")  
plt.show()

Output:

Example 6:

Let us draw three Venn Diagrams use venn3, venn3_circles modules.

Python3




# import module
from matplotlib_venn import venn3, venn3_circles
from matplotlib import pyplot as plt
  
# depict venn diagram
venn3(subsets=(20, 10, 12, 10, 9, 4, 3), 
      set_labels=('Group A', 'Group B', 'Group C'), 
      set_colors=("orange", "blue", "red"), alpha=0.7)
  
# outline of circle line style and width
venn3_circles(subsets=(20, 10, 12, 10, 9, 4, 3),
              linestyle="dashed", linewidth=2)
  
# title of the venn diagram
plt.title("Venn Diagram in geeks for geeks")
plt.show()

Output:

Example 7:

Let us customize the colors of each area of the diagram with the get_patch_by_id() method.

Python3




#import module
from matplotlib_venn import venn3, venn3_circles
from matplotlib import pyplot as plt
  
# depict venn diagram
v = venn3(subsets=(1, 1, 1, 1, 1, 1, 1), 
          set_labels=('A', 'B', 'C'))
  
# set color to defined path id
v.get_patch_by_id("100").set_color("white")
# set text to defined label id
v.get_label_by_id("100").set_text("unknown")
# set text to defined label id "A"
v.get_label_by_id('A').set_text('A new')
  
# add outline
venn3_circles(subsets=(1, 1, 1, 1, 1, 1, 1), 
              linestyle="dashed", linewidth=2)
  
# assign title
plt.title("Venn Diagram in geeks for geeks")
plt.show()

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




My Personal Notes arrow_drop_up
Recommended Articles
Page :