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

Wil*_*ant 1 python plot matplotlib jupyter matplotlib-venn

通过遵循matplotlib-venn README中的命令,我可以在示例中生成初始图.但是,当我更改维恩图(标签文本等)的设置时,我无法弄清楚如何重新绘制图形.运行:

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

给出维恩图内联.然后我继续更改标签

v.get_label_by_id('100').set_text('Arbitrary1')
Run Code Online (Sandbox Code Playgroud)

但我不能重新绘制这个数字.我试过了

# from matplotlib import pyplot as plt
plt.plot()
plt.plot(v)
v
v()
Run Code Online (Sandbox Code Playgroud)

但我真的在黑暗中四处感受.我觉得我遗漏了一些非常基本的东西%matplotlibmatplotlib情节功能,但我还没能在网上找到答案.

如何在Jupyter中再次绘制这个数字?

tmd*_*son 6

如果您使用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'))
Run Code Online (Sandbox Code Playgroud)

单元格2:

v.get_label_by_id('100').set_text('Arbitrary1')
fig
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述