【问题标题】:How do I customise the border and background color of my matplotlib-venn plot?如何自定义 matplotlib-venn 图的边框和背景颜色?
【发布时间】:2020-01-28 20:55:46
【问题描述】:

我正在尝试使用 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】:

    在调用任何绘图函数之前,您需要先调用plt.figure()。所以,在调用v = venn2(...之前。

    plt.figure() 创建一个新区域来绘制或绘制一些东西,并且可以处理很多选项。如果你不调用plt.figure() 或一些等效函数,matplotlib 会创建一个默认的figure。当您稍后调用plt.figure() 时,matplotlib 会启动一个新的空figure。通常,matplotlib 会显示两个窗口:第一个带有默认 figure 设置,第二个没有绘图。

    完整的例子,稍微重写以利用循环,看起来像:

    from matplotlib import pyplot as plt
    from matplotlib_venn import venn2, venn2_circles
    
    
    plt.figure(linewidth=10, edgecolor="black", facecolor="white")
    
    # Call 2 group Venn diagram
    v = venn2(subsets=(10, 0, 5), set_labels=('Euler', 'Venn'))
    circles = venn2_circles(subsets=(10, 0, 5), linestyle='dashed')
    
    # circle format
    for circle, color in zip(circles, ['#a6cee3', '#b2df8a']):
        circle.set_lw(2.0)
        circle.set_ls('dotted')
        circle.set_alpha(1)
        circle.set_color(color)
    
    # hide unwanted labels
    for label in v.subset_labels:
        label.set_visible(False)
    
    plt.title("Diagrams")
    plt.show()
    

    【讨论】:

    • 现在我的 plt 项目正在工作,我还有更多可以玩的东西。感谢您的回答,以及更多的圆圈的 Pythonic 格式。
    猜你喜欢
    • 2011-08-23
    • 2019-06-14
    • 2013-01-06
    • 2021-09-30
    • 2019-02-24
    • 2015-05-09
    • 2017-04-30
    • 1970-01-01
    • 2010-09-28
    相关资源
    最近更新 更多