首页 > 解决方案 > 使用分类数据创建维恩图 - matplotlib_venn

问题描述

我想使用 Python 3 制作维恩图来显示分类数据。如果我这样做,说

  Rosy = ["chocolate", "chips", "cake", "sweets"]
  Steven = ["chocolate", "crisps", "nuggets"]

  venn2([set(Rosy), set(Steven)])
  plt.show()

然后我得到一个图表,其中包含与每个段相对应的条目数量,但我想要的是每个段中的实际条目(即,薯条,Rosy bit 中的蛋糕糖果,交叉路口中的巧克力以及 Steven 中的薯片和金块)。有没有办法使用 matplotlib_venn 做到这一点?

标签: pythonpython-3.xmatplotlibvenn-diagrammatplotlib-venn

解决方案


我发现的最好方法是这样的:

set1 = set(['A', 'B', 'C', 'D'])
set2 = set(['B', 'C', 'D', 'E'])

v = venn2([set1, set2], ('Set1', 'Set2'))
v.get_label_by_id('10').set_text('\n A')
v.get_label_by_id('01').set_text('\n E')
v.get_label_by_id('11').set_text('\n \nB \nC \nD')
plt.show()

只需动态创建从 set1 和 set2 为 set_text 生成文本的函数,就完成了。 在此处输入图像描述


推荐阅读