1

我正在比较一组关于伦敦实施的新罚款的推文,该罚款适用于严重污染的车辆。我想比较有多少推文提到了与交通有关的词,有多少提到了与污染有关的词。

我正在使用维恩图来执行此操作,但理想情况下,我希望重叠的圆圈都包含在一个代表所有推文的整个集合的大圆圈内。

这是我的意思的一个例子(对不起,还没有发布图片的声誉)

https://media1.britannica.com/eb-media/79/63279-004-ED30922B.gif

我目前正在使用 matplotlib-venn。

非常感谢。

4

2 回答 2

2

啊,所以您需要做的就是将整个集合之外的任何部分的值设置为 0。请参阅此处改编自文档示例的代码:

my_sets =(0,0,0,4,5,6,7)
my_labels = ["Traffic","Pollution","All Tweets"]

plt.figure(figsize=(4,4))
v = venn3(subsets= my_sets, set_labels = my_labels)
c = venn3_circles(subsets= my_sets, linestyle='dashed')
plt.show()
于 2017-12-27T02:48:03.863 回答
1

一种可能性是在整个图表周围手动添加一个新圆圈(假设它不需要任何特定的精确测量,而只是作为宇宙的粗略指标)。例如:

from matplotlib_venn import venn3
from matplotlib import pyplot as plt
venn3((1,2,3,4,5,6,7))

from matplotlib.patches import Circle
plt.gca().add_patch(Circle([0,0], 1, fill=False, ec='k'))
plt.xlim(-1.05,1.05)
plt.ylim(-1.05,1.05)
plt.text(0.8, 0.8, 'Universe', fontsize=20)
于 2017-12-27T14:16:59.947 回答