我想使用Python 3制作维恩图以显示分类数据。
如果我愿意,说
Rosy = ["chocolate", "chips", "cake", "sweets"]
Steven = ["chocolate", "crisps", "nuggets"]
venn2([set(Rosy), set(Steven)])
plt.show()
然后我得到一个带有the number of entries corresponding to each segment的图,但我想要的是the actual entries in each segment(即薯片,仅Rosy钻头中的蛋糕甜食,交叉路口中的巧克力以及Steven钻头中的薯片和金块)。使用matplotlib_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生成文本,即可完成。