Как получить точное смешивание цветов в matplotlib_venn в Python? ⇐ Python

Программы на Python
Anonymous
Как получить точное смешивание цветов в matplotlib_venn в Python?

Сообщение Anonymous »

У меня есть следующий код:

Код: Выделить всё

import matplotlib.pyplot as plt
from matplotlib_venn import venn3

# Convert the 'Gene_Name' columns to sets for comparison
genes_5min_Down = set(Host_5min_Down_gene['Gene_Name'])
genes_10min_Down = set(Host_10min_Down_gene['Gene_Name'])
genes_no_phage_Down = set(No_phage_Down_gene['Gene_Name'])

# Create a Venn diagram
venn = venn3([genes_5min_Down, genes_10min_Down, genes_no_phage_Down],
set_labels=('Host 5min infection', 'Host 10min infection', 'No Phage infection'))

# Customize the labels to show counts
# Get the sizes for each section
only_5min_Down = len(genes_5min_Down - genes_10min_Down - genes_no_phage_Down)
only_10min_Down = len(genes_10min_Down - genes_5min_Down - genes_no_phage_Down)
only_no_phage_Down = len(genes_no_phage_Down - genes_5min_Down - genes_10min_Down)
common_5min_10min_Down = len(genes_5min_Down & genes_10min_Down - genes_no_phage_Down)
common_5min_no_phage_Down = len(genes_5min_Down & genes_no_phage_Down - genes_10min_Down)
common_10min_no_phage_Down = len(genes_10min_Down & genes_no_phage_Down - genes_5min_Down)
common_all_Down = len(genes_5min_Down & genes_10min_Down & genes_no_phage_Down)

# Set the counts for each section
venn.get_label_by_id('100').set_text(only_5min_Down)             # Only in 5min
venn.get_label_by_id('010').set_text(only_10min_Down)            # Only in 10min
venn.get_label_by_id('001').set_text(only_no_phage_Down)         # Only in No Phage
venn.get_label_by_id('110').set_text(common_5min_10min_Down)     # Common in 5min and 10min
#venn.get_label_by_id('101').set_text(common_5min_no_phage_Down)  # Common in 5min and No Phage
#venn.get_label_by_id('011').set_text(common_10min_no_phage_Down) # Common in 10min and No Phage
#venn.get_label_by_id('111').set_text(common_all_Down)             # Common in all three

# Set colors for each circle
colors = ('#ADD8E6', '#FFFFE0', '#FFB6C1')  # You can specify your desired colors here
for idx, color in zip(('100', '010', '001'), colors):
patch = venn.get_patch_by_id(idx)
patch.set_color(color)
patch.set_alpha(0.5)  # Set transparency for blending
patch.set_edgecolor('black')  # Set edge color to black
patch.set_linewidth(2)  # Set edge line width

# Display the plot
plt.title("Common Genes Down Between Host 5min and 10min infection and no phage infection")
plt.show()
Вот какой сюжет у меня получается.
Изображение

Я не могу хоть убей понять, как заставить перекрывающийся круг сливаться правильный цвет. Желтый и синий должны сливаться с зеленым, а не с коричневым.
Как этого добиться или что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/790 ... -in-python

Вернуться в «Python»