我如何自定义matplotlib-venn图的边框和背景颜色?

问题描述 投票:0回答:1

我正在尝试使用plt.figure方法自定义venn plot的图形区域,但无法获得预期的结果。

我正在尝试在绘图上创建黑色边框和白色背景,但是图像仍然透明无边框。

我怀疑我的代码中缺少一些基本知识,但是任何指针都将不胜感激。这是我的代码。

from matplotlib import pyplot as plt
from matplotlib_venn import venn2, venn2_circles 

# Call 2 group Venn diagram
v = venn2(subsets = (10, 0, 5), set_labels = ('Euler', 'Venn'))
c = venn2_circles(subsets=(10,0,5), linestyle='dashed')

# Format
c[0].set_lw(2.0)
c[0].set_ls('dotted')
c[0].set_alpha(1)
c[0].set_color('#a6cee3')
c[1].set_lw(2.0)
c[1].set_ls('dotted')
c[1].set_alpha(1)
c[1].set_color('#b2df8a')

# Labels
plt.title("Diagrams")
for idx, subset in enumerate(v.subset_labels):
    v.subset_labels[idx].set_visible(False)

# Figure
plt.figure(linewidth=10, edgecolor="black", facecolor="white")
plt.show()
python matplotlib data-visualization matplotlib-venn
1个回答
0
投票

您需要在调用任何绘图功能之前调用plt.figure()。因此,在调用plt.figure()之前。

v = venn2(...创建了一个新区域以在上面绘制或绘图,并可以处理很多选项。如果您不调用plt.figure()或某些等效函数,则matplotlib将创建默认的plt.figure()。当您稍后调用figure时,matplotlib将启动一个新的空plt.figure()。通常,matplotlib将为您显示两个窗口:第一个窗口具有默认的figure设置,第二个窗口不具有绘图。

完整的示例,使用循环进行了一些重写,看起来像:

figure
© www.soinside.com 2019 - 2024. All rights reserved.