You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

大型DataFrame按sscinames分组后绘制Top20类群热图求助

解决方案

1. 数据预处理:分组求和与筛选前20类群

用pandas完成数据读取、重复类群合并,再筛选出总计数最高的前20个类群:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# 读取数据(可替换为你的文件路径,或用pd.read_clipboard()直接读取示例表格)
df = pd.read_csv("your_data_file.csv", sep="\t")

# 按sscinames分组,对所有样本列求和合并重复条目
grouped_df = df.groupby('sscinames').sum()

# 计算每个类群的总计数,排序后取前20
grouped_df['total'] = grouped_df.sum(axis=1)
top20_df = grouped_df.sort_values('total', ascending=False).drop('total', axis=1).head(20)

2. 绘制热图

用seaborn生成热图,调整样式提升可读性:

# 设置绘图基础风格
sns.set(font_scale=1.1)
plt.figure(figsize=(12, 10))

# 绘制热图,可按需开启单元格数值标注
heatmap = sns.heatmap(top20_df, cmap="YlGnBu", annot=False, fmt="g",
                      yticklabels=True, xticklabels=True)

# 调整x轴标签角度避免重叠
plt.xticks(rotation=45, ha='right')
plt.title('Top 20 Microbial Groups by Total Count')
plt.tight_layout()
plt.show()

可选调整

  • 若需要显示单元格具体数值,将annot参数设为True
  • 颜色映射cmap可更换为viridis、RdBu_r等其他配色

内容的提问来源于stack exchange,提问作者sumitra sivaprakasam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 19:22:07