如何在python中使用matplotlib_venn定义圆的大小

时间:2018-07-11 16:38:06

标签: python matplotlib matplotlib-venn

我正在使用python包matplotlib_venn绘制venn图。 我要设置圆圈的大小,以便在不同的绘图中圆圈的大小相同。我该怎么办?

from charticle.venn import Venn2
import matplotlib_venn as vplt
import matplotlib.pyplot as plt
fig = plt.figure()
plt.subplot(121)
v2 = vplt.venn2(subsets={'10':10,'01':10,'11':1},set_labels = ('A','B'))
v.Sizes(a=1.0, b=10.0, ab=1.0)
plt.subplot(122)
v1 = vplt.venn2(subsets={'10':10,'01':1000,'11':1},set_labels = ('A','B'))
plt.show()

enter image description here

2 个答案:

答案 0 :(得分:0)

您不能这样做。

  

函数venn2_circlesvenn3_circles返回matplotlib.patch.Circle对象的列表,您可以根据自己的喜好对其进行进一步调整。

这意味着圆半径和中心彼此链接,因此,更改中心或半径可能会引起问题。

更多信息:https://pypi.org/project/matplotlib-venn/https://stackoverflow.com/a/46008924/7390366

答案 1 :(得分:0)

这怎么样?我主要使用venn2_circles对象,而忽略了venn2对象。如果您尝试使用venn2对象着色,则半径将关闭并且无法正确填充,这就是我认为上面的评论所提及的。

import matplotlib_venn as vplt
import matplotlib.pyplot as plt

plt.figure(figsize=(10,10))
plt.subplot(1, 2, 1)
plt.title('Subplot 1')
v = vplt.venn2(subsets=(10,10,1), set_labels=('A', 'B'), set_colors=('w', 'w'))
c = vplt.venn2_circles(subsets=(2, 2, 1), linestyle='solid')
c[0].set_radius(0.32)
c[1].set_radius(0.32)
c[0].set_lw(2.0)
c[1].set_lw(2.0)
c[0].set_color('green')
c[1].set_color('red')
c[0].set_alpha(0.5)
c[1].set_alpha(0.5)
c[0].set_edgecolor('black')
c[1].set_edgecolor('black')

plt.subplot(1, 2, 2)
plt.title('Subplot 2')
v = vplt.venn2(subsets=(10,1000,1), set_labels=('A', 'B'), set_colors=('w', 'w'))
v.get_label_by_id('10').set_x(0.25)
v.get_label_by_id('01').set_x(-.25)
v.get_label_by_id('11').set_x(0)
v.set_labels[0].set_position((-0.22, -0.45))
v.set_labels[1].set_position((0.25, -0.45))


c = vplt.venn2_circles(subsets=(2, 2, 1), linestyle='solid')
c[0].set_radius(0.32)
c[1].set_radius(0.32)
c[0].set_lw(2.0)
c[1].set_lw(2.0)
c[0].set_color('green')
c[1].set_color('red')
c[0].set_alpha(0.5)
c[1].set_alpha(0.5)
c[0].set_edgecolor('black')
c[1].set_edgecolor('black')

Picture of result here because I need 10 reputation to post pictures