如何用Python datetime模块为分析输出添加日期时间标识?
为Jupyter分析结果添加日期时间标识的实用方案
直接用Python的datetime模块就能搞定,下面分场景给你具体代码:
1. 生成标准化时间戳字符串
先统一生成时间戳,避免多次调用datetime.now()导致时间不一致:
from datetime import datetime # 适合文件名的时间戳(无特殊字符,避免系统兼容问题) timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') # 可读性更强的格式(用于图表/表格显示) readable_timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
%Y%m%d_%H%M%S:示例为20240520_143022,适合作为文件名后缀%Y-%m-%d %H:%M:%S:示例为2024-05-20 14:30:22,适合显示在图表/表格中
2. 给adata文件添加时间戳
修改原保存代码,把时间戳拼入文件名:
saved_filename = f"{data_dir}data_filtered_{timestamp}.h5ad" adata.write(saved_filename)
生成的文件会是类似data_filtered_20240520_143022.h5ad的格式,能直接区分不同时间的版本。
3. 给图表添加时间标识
不管用matplotlib还是seaborn,都可以在标题或角落文本中加入时间信息:
Matplotlib示例
import matplotlib.pyplot as plt # 绘制图表(以PCA散点图为例) plt.scatter(adata.obsm['X_pca'][:, 0], adata.obsm['X_pca'][:, 1]) # 标题加入时间 plt.title(f"PCA细胞分布 - 生成时间: {readable_timestamp}") # 右下角添加小字时间戳 plt.text(0.98, 0.02, f"生成于: {readable_timestamp}", transform=plt.gca().transAxes, ha='right', fontsize=8) plt.show()
Seaborn示例
import seaborn as sns sns.boxplot(data=adata.obs, x='cell_type', y='n_genes') plt.title(f"各细胞类型基因数分布 - {readable_timestamp}") plt.show()
4. 给表格添加时间标识
针对Jupyter中展示的表格,有两种实用方式:
方式1:表格上方加带时间的Markdown标题
from IPython.display import display, Markdown df = adata.obs.copy() # 显示带时间的标题 display(Markdown(f"#### 细胞元数据表格(生成时间: {readable_timestamp})")) # 展示表格 display(df)
方式2:表格末尾添加时间记录行
df_with_time = adata.obs.copy() # 最后一行添加生成时间 df_with_time.loc['生成时间'] = [readable_timestamp] * len(df_with_time.columns) display(df_with_time)
内容的提问来源于stack exchange,提问作者Maria Pereira
相关产品推荐
相关产品推荐

