【问题标题】:Matplotlib_venn changing what is displayed inside the Venn diagramMatplotlib_venn 更改维恩图中显示的内容
【发布时间】:2018-06-26 23:19:14
【问题描述】:

我正在使用 Matplotlib_venn 包制作一些维恩图,表示三个不同集合的重叠(因此使用 Venn3)。

当我使用plt.show() 并创建维恩图时,每个圆圈的每个部分内侧显示的数字是集合中的元素满足重叠要求的次数。我明白了。

我的问题是:有没有办法不显示这种基数,而是显示每个圆圈中存在的集合元素?我想这对于大集合会变得非常混乱,但是你可以用说三个集合来做到这一点,每个集合中都包含少于 5 个元素吗?如果是这样,我该怎么做?

【问题讨论】:

    标签: python matplotlib venn-diagram matplotlib-venn


    【解决方案1】:

    我想我只需要使用.get_label_by_id().set_text() 来做这件事,因为你说的只有几个项目。

    首先,让我们获取维恩图中每个区域的所有标签:

    from matplotlib_venn import venn3
    
    subsets = (1, 1, 0.2, 1, 0.2, 0.2, 0.1)
    v = venn3(subsets=subsets)
    
    labels = ['100', '101', '110', '010', '001', '011', '111']
    for label in labels:
        v.get_label_by_id(label).set_text(label)
    

    这会给你:

    如果要在标记为100的区域中显示项目(例如a、b、c、d),可以使用以下代码:

    v.get_label_by_id('100').set_text('a, b, c, d')

    【讨论】:

    • 哇,这个问题已经沉寂了几个月。这完美地回答了我的问题。非常感谢您的回复。
    • 这就是我要找的 v.get_label_by_id('100').set_text('a, b, c, d') -- 谢谢!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多