gpt4 book ai didi

Python:venn3_circles:如何获取 Venn 3 圆图中的交点值

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

在 python 中使用 matplotlib、venn3 和 venn3_circles。

我正在尝试获取 3 圆维恩图中每个交叉点的元素列表。

我将使用示例 here

from matplotlib import pyplot as plt
import numpy as np
from matplotlib_venn import venn3, venn3_circles


A = set(['DPEP1', 'CDC42BPA', 'GNG4', 'RAPGEFL1', 'MYH7B', 'SLC13A3', 'PHACTR3', 'SMPX', 'NELL2', 'PNMAL1', 'KRT23', 'PCP4', 'LOX', 'CDC42BPA'])
B = set(['ABLIM1','CDC42BPA','VSNL1','LOX','PCP4','SLC13A3'])
C = set(['PLCB4', 'VSNL1', 'TOX3', 'VAV3'])

v = venn3([A,B,C], ('GCPromoters', 'OCPromoters', 'GCSuppressors'))

ppp=v.get_label_by_id('100').set_text('\n'.join(A-B-C))
v.get_label_by_id('110').set_text('\n'.join(A&B-C))
v.get_label_by_id('011').set_text('\n'.join(B&C-A))
v.get_label_by_id('001').set_text('\n'.join(C-A-B))
v.get_label_by_id('010').set_text('')
plt.annotate(',\n'.join(B-A-C), xy=v.get_label_by_id('010').get_position() +
np.array([0, 0.2]), xytext=(-20,40), ha='center',
textcoords='offset points',
bbox=dict(boxstyle='round,pad=0.5', fc='gray', alpha=0.1),
arrowprops=dict(arrowstyle='->',
connectionstyle='arc',color='gray'))

在示例中,他们可以在图形维恩图中显示每个交叉点的内容 enter image description here

如何在变量/列表中存储每个交叉点的内容?

我想得到这样的东西:

A:[MYH7B, PHACTR3,...,DPEP1]
AB: [LOX,...,PCP4]
B: [ABLIM1]
ABC: empty
B: empty
BC: [VSNL1]
C: [TOX3,VAV3,PLCB4]

其中 A, AB, ABC, C,... 是 python 中的列表

最佳答案

为什么不使用字母数字“ token ”作为索引和 3 个整数标志 [A、B、C] 的数组将其存储为数组

所以你会将项目列为

 - ['MYH7B', [ 1, 0, 0 ]], - ['LOX',   [ 1, 1, 0 ]], - ['ABLIM1',[ 0, 1, 0 ]], - ['VSNL1', [ 0, 1, 1 ]], - ['TOX3',  [ 0, 0, 1 ]]

作为示例,然后对数组进行切片以查找模式匹配项。

它清晰、简洁,最大限度地减少了存储空间,同时最大限度地提高了多功能性。

如果您真的想将“B”部分表示为“B1”和“B2”这两个子部分,那么您只需添加一个额外的列...[A、B1、B2、C]

 - ['MYH7B', [ 1, 0, 0, 0 ]], - ['LOX',   [ 1, 1, 0, 0 ]], - ['ABLIM1',[ 0, 1, 0, 0 ]], - ['VSNL1', [ 0, 1, 0, 1 ]], - ['TOX3',  [ 0, 0, 0, 1 ]]

关于Python:venn3_circles:如何获取 Venn 3 圆图中的交点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50183419/

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