gpt4 book ai didi

python - 是否可以在 `matplotlib_venn` 维恩图中放置标签而不是设置大小?

转载 作者:太空宇宙 更新时间:2023-11-04 04:41:43 25 4
gpt4 key购买 nike

例如下面的代码:

import matplotlib.pyplot as plt
import matplotlib_venn as mv
import seaborn

cols = seaborn.color_palette(['orange', 'darkblue'])
plt.figure()

s1 = {'TIMP3', 'COL4A1', 'SERPINE1', 'SPARC', 'FBLN2', 'THBS2', 'SERPINE2', 'COL1A1', 'LTBP2'}
s2 = {'SPARK', 'FBLN1', 'VCAN', 'TIMP1', 'SERPINE2', 'SKIL', 'LTBP2', 'TIMP3', 'THBS2', 'TGFBR1', 'BGN', 'VEGFA', 'COL1A1', 'FBN1', 'FN1', 'COL4A1', 'MMP2', 'MMP14', 'COL1A2', 'PMPEA1', 'FGF2'}

mv.venn2_unweighted([s1, s2], ['Adult', 'Senescent'], set_colors=cols)
plt.show()

产生: enter image description here

但如果属于每个集合的字符串的标签位于圆圈内而不是(或者可能同时)每个集合的大小,这对我来说会很有用。这可能吗?

最佳答案

您可以通过 ID 访问标签,ID 是一个字符串,其中数字 0 和 1 表示集合。例如。 v.get_label_by_id("01") 为您提供第二个圆圈的标签,如果 v 是正在使用的维恩图。

因此,您可以将绘图下方的标签设置为空字符串,而不是为每个内部标签设置新文本,重用已经存在的尺寸标签。

import matplotlib.pyplot as plt
import matplotlib_venn as mv
import seaborn

cols = seaborn.color_palette(['orange', 'darkblue'])
plt.figure()

s1 = {'TIMP3', 'COL4A1', 'SERPINE1', 'SPARC', 'FBLN2', 'THBS2', 'SERPINE2', 'COL1A1', 'LTBP2'}
s2 = {'SPARK', 'FBLN1', 'VCAN', 'TIMP1', 'SERPINE2', 'SKIL', 'LTBP2', 'TIMP3', 'THBS2', 'TGFBR1', 'BGN', 'VEGFA', 'COL1A1', 'FBN1', 'FN1', 'COL4A1', 'MMP2', 'MMP14', 'COL1A2', 'PMPEA1', 'FGF2'}

v = mv.venn2_unweighted([s1, s2], ["",""], set_colors=cols)

labels = ['Adult', 'Senescent']

def label_by_id(label, ID):
num = v.get_label_by_id(ID).get_text()
v.get_label_by_id(ID).set_text(label+"\n"+num)

for label, ID in zip(labels, ["10", "01"]):
label_by_id(label, ID)

plt.show()

enter image description here

关于python - 是否可以在 `matplotlib_venn` 维恩图中放置标签而不是设置大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50484817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com