如何在 Python 中创建和定制文氏图?
原文:https://www . geesforgeks . org/如何创建和定制 python 中的 venn 图/
文氏图有助于说明两个或更多组之间的关系。我们很容易看到不同群体之间的共性和差异。在本文中,我们将讨论如何在 Python 中创建和定制文氏图:
简单维恩图:
安装:
在你的电脑中安装 matplotlib-venn 库(这里我们使用了工具 Pycharm )前往终端并使用以下命令。
pip install matplotlib-venn
安装库后,创建一个新的 python 文件,并按照以下程序中的说明导入库:
Python 3
# 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()
输出:
语句 venn2(子集= (30,10,5),set _ labels =(' A 组',' B 组') 是指子集的参数是 3 元素列表,其中数字 50,10,7 对应于 aB,AB,Ab。
Ab =包含在 A 组中,但不包含在 B 组中
aB =包含在 B 组,但不包含在 A 组
AB =包含在 A 组和 B 组中
*set _ labels参数允许您在维恩图中标记您的两个组。matplotlib 库 pyplot 模块中的 *show() 功能用于显示所有图形。****
**以下是描述如何创建和定制文氏图的各种示例:****
**例 1:****
*文氏图根据分配项目的大小自动确定圆的大小。但是,我们可以通过使用未加权的维恩图来禁用它,因此无论分配了什么项目,圆圈都以相同的大小出现。*
*维恩图的默认颜色是红色和绿色现在我们将使用 *set_colors 参数自定义颜色橙色和蓝色。α参数用于控制透明度。****
*Python 3*
**# 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()**
**输出:****
**
**例 2:****
*我们可以自定义圆的轮廓,注意它在加权文氏图上工作,如下图所示。*
*Python 3*
**# 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()**
**输出:****
**
**例 3:****
*我们还可以使用虚线样式和线宽自定义圆的轮廓:*
*Python 3*
**# 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()**
**输出:****
**
**例 4:****
*可以使用 *title() 方法为文氏图分配一个标题。****
*Python 3*
**# 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()**
**输出:****
**
**例 6:****
*让我们使用 *venn3 、 venn3_circles 模块绘制三个 Venn 图。****
*Python 3*
**# 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()**
**输出:****
**
**例 7:****
*让我们用 *get_patch_by_id() 方法自定义图表各区域的颜色。****
*Python 3*
**#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()**
**输出:****
**
版权属于:月萌API www.moonapi.com,转载请注明出处