Код: Выделить всё
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