excel

具体代码
import pandas as pd
import matplotlib.pyplot as plt
from venn import venn
file_path = 'C:\\Users\\Administrator\\Desktop\\t1\\2.xlsx'
try:
df = pd.read_excel(file_path, engine='openpyxl')
required_columns = ['YP_id', 'EP_id', 'MP_id', 'BSA_99']
if not all(col in df.columns for col in required_columns):
missing = [col for col in required_columns if col not in df.columns]
raise KeyError(f"缺少必要列: {missing}")
sets_dict = {
'YP_id': set(df['YP_id'].dropna().astype(str)),
'EP_id': set(df['EP_id'].dropna().astype(str)),
'MP_id': set(df['MP_id'].dropna().astype(str)),
'BSA_99': set(df['BSA_99'].dropna().astype(str))
}
if all(len(s) == 0 for s in sets_dict.values()):
raise ValueError("所有数据集均为空,请检查Excel数据内容")
plt.figure(
figsize=(12, 10),
dpi=100,
facecolor='white'
)
venn(
sets_dict,
cmap='tab10',
fontsize=12,
legend_loc="best"
)
plt.title(
"Four-Way Venn Diagram",
fontsize=16,
pad=20
)
plt.gca().set_facecolor('#f5f5f5')
plt.grid(False)
except FileNotFoundError:
print(f"错误:文件未找到,请检查路径是否存在:{file_path}")
print("建议:")
print("1. 检查路径中的反斜杠是否正确转义")
print("2. 确认文件名是否包含隐藏字符(如多余空格)")
except PermissionError:
print(f"错误:无权限访问文件,请尝试:")
print("1. 关闭Excel软件后重试")
print("2. 将文件复制到非系统目录(如D盘)")
except Exception as e:
print(f"发生未预期错误:{str(e)}")
print("建议排查步骤:")
print("1. 检查Excel文件是否损坏")
print("2. 运行 pip install --upgrade venn pandas openpyxl 更新库")
else:
plt.tight_layout()
plt.show()
具体效果:
