首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在matplotlib-venn图中打印百分比?

如何在matplotlib-venn图中打印百分比?
EN

Stack Overflow用户
提问于 2022-01-31 16:05:38
回答 2查看 243关注 0票数 1

默认情况下,matplotlib-vennvenn3打印在每个重叠中都是计数的。如何打印百分比呢?

EN

回答 2

Stack Overflow用户

发布于 2022-01-31 16:05:38

我想通了。只需将每个标签除以总数:

代码语言:javascript
复制
from matplotlib_venn import venn3

subsets = (1, 1, 1, 2, 1, 2, 2)
total = sum(subsets)
venn = venn3(subsets=subsets, set_labels=('Set1', 'Set2', 'Set3'))

for id in [''.join(map(str, i)) for i in product([0, 1], [0, 1], [0, 1])]:
    if id == '000':
        continue

    count = int(venn.get_label_by_id(id).get_text())
    venn.get_label_by_id(id).set_text('{:.1%}'.format(count / total))
票数 1
EN

Stack Overflow用户

发布于 2022-06-17 19:30:12

一种更简洁的方法是使用subset_label_formatter参数,如下面的答案:https://stackoverflow.com/a/53490475/4133418所述

看起来会是这样的:

代码语言:javascript
复制
venn = venn3(subsets=subsets, set_labels=('Set1', 'Set2', 'Set3'),
             subset_label_formatter=lambda x: f"{(x/total):1.0%})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70929066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档