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

如何基于离散时间仓自动绘制多组PC1-PC2散点图?

按时间仓自动生成PC1-PC2散点图解决方案

以下用Python结合pandas和matplotlib实现自动批量生成对应时间仓的散点图,适配你的数据格式:

步骤说明

  1. 将数据整理为可处理的DataFrame(Excel/CSV文件直接用pd.read_excel/pd.read_csv加载)
  2. 自动识别所有存在的时间仓范围
  3. 循环遍历每个时间仓,筛选出该时间点存在的物种(满足APPEARANCE ≤ 时间仓 ≤ DISAPPEARANCE)
  4. 批量绘制并保存/显示散点图

完整代码示例

import pandas as pd
import matplotlib.pyplot as plt

# 1. 加载数据(示例用你提供的数据,实际替换为你的文件路径)
data = pd.DataFrame({
    'SPECIES': ['Alpha', 'Beta', 'Gamma', 'Delta', 'Epsilon'],
    'GROUP': ['A', 'B', 'B', 'B', 'D'],
    'APPEARANCE': [1, 1, 1, 2, 3],
    'DISAPPEARANCE': [2, 2, 5, 3, 4],
    'PC1': [-0.100119669, 0.217854357, 0.193998962, 0.126089613, -0.094182811],
    'PC2': [0.0595756, -0.010260947, -0.029757206, 0.014409345, -0.004406088]
})

# 2. 确定所有时间仓范围(从最小出现时间到最大消失时间)
min_time = data['APPEARANCE'].min()
max_time = data['DISAPPEARANCE'].max()
time_bins = range(min_time, max_time + 1)

# 3. 循环生成每个时间仓的散点图
for t in time_bins:
    # 筛选当前时间仓存在的物种
    current_data = data[(data['APPEARANCE'] <= t) & (data['DISAPPEARANCE'] >= t)]
    
    # 创建画布
    plt.figure(figsize=(8, 6))
    # 按GROUP分组绘制散点,不同组用不同颜色
    groups = current_data.groupby('GROUP')
    for name, group in groups:
        plt.scatter(group['PC1'], group['PC2'], label=name, alpha=0.7)
    
    # 设置图表属性
    plt.title(f'Time Bin {t}: PC1 vs PC2')
    plt.xlabel('PC1')
    plt.ylabel('PC2')
    plt.legend(title='GROUP')
    plt.grid(alpha=0.3)
    
    # 保存图表(可替换为你的保存路径,比如'./time_bin_{t}.png')
    plt.savefig(f'time_bin_{t}.png', dpi=300, bbox_inches='tight')
    # 关闭画布释放内存
    plt.close()

print("所有时间仓图表已生成完成")

代码说明

  • 数据加载部分:如果你的数据是CSV文件,把示例中的pd.DataFrame替换为pd.read_csv('你的数据路径.csv')即可
  • 时间仓筛选逻辑:通过布尔索引自动筛选出当前时间仓内存在的物种,无需手动划分数据集
  • 分组绘图:按GROUP字段区分不同物种组的颜色,方便组间对比
  • 保存图表:自动以time_bin_1.png、time_bin_2.png等命名保存,避免手动操作

如果需要调整图表样式(比如颜色、点大小),可以修改plt.scatter的参数(如s控制点大小,c指定颜色);如果偏好seaborn库,也可以把绘图部分替换为sns.scatterplot,核心逻辑保持一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 04:45:27