Skip to main content
 首页 » 编程设计

python之更改后在 Jupyter 中绘制维恩图 (matplotlib-venn)

2025年05月04日14bluestorm

按照 matplotlib-venn 自述文件中的命令,我可以生成示例中的初始图。但是,当我更改维恩图的设置(标签文本等)时,我不知道如何重新绘制图形。运行:

%matplotlib inline 
from matplotlib_venn import venn3 
v = venn3([set1, set2, set3], ('Set1', 'Set2', 'Set3')) 

内联维恩图。然后我继续更改标签

v.get_label_by_id('100').set_text('Arbitrary1') 

但我无法重新绘制图形。我试过了

# from matplotlib import pyplot as plt 
plt.plot() 
plt.plot(v) 
v 
v() 

但我真的感觉在黑暗中徘徊。我觉得我遗漏了一些关于 %matplotlib 或 matplotlib 绘图函数的非常基本的东西,但我还没能在网上找到答案。

如何在 Jupyter 中再次绘制此图?

请您参考如下方法:

如果您使用 fig=plt.figure() 来存储对图形实例的引用,那么您将可以在以后的笔记本单元格中访问该图形。如果您不这样做,那么您将无法访问新单元格中的现有图形。

因此,在设置标签后,您只需再次编写 fig 即可再次显示图形。

这是一个工作示例:

单元格 1:

%matplotlib inline 
from matplotlib_venn import venn3 
import matplotlib.pyplot as plt 
fig = plt.figure() 
set1 = set(['A', 'B', 'C']) 
set2 = set(['A', 'D', 'E']) 
set3 = set(['A', 'F', 'B']) 
 
v = venn3([set1, set2, set3], ('Set1', 'Set2', 'Set3')) 

单元格 2:

v.get_label_by_id('100').set_text('Arbitrary1') 
fig