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

太阳耀斑数据集:按时间值统计各类别出现次数及绘图方法咨询

解决太阳耀斑数据集的统计与绘图问题

1. 统计每个时间值下各类别的出现次数

假设你的DataFrame包含time(时间值,如1997.87)和category(耀斑类别,如M5-M9.9)两列,用Pandas可以快速生成统计结果:

import pandas as pd

# 方法1:交叉表统计(直观呈现时间-类别对应次数)
count_df = pd.crosstab(flare_df['time'], flare_df['category'])

# 方法2:分组统计(更灵活,适合后续扩展)
count_df = flare_df.groupby(['time', 'category']).size().unstack(fill_value=0)

执行后count_df会是一个二维表,每行对应一个时间值,每列对应一个耀斑类别,单元格值就是该时间点该类别的耀斑次数。比如你提到的1997.87对应的M5-M9.9列值为4,1998.87对应的X1-X5列值为5、X5-X10列值为1。

2. 绘制指定时间点的耀斑次数图表

如果只需要绘制单个时间点(如1997.87,Y轴为4)的散点图,用Matplotlib实现:

import matplotlib.pyplot as plt

# 提取目标时间点的对应类别次数
target_count = count_df.loc[1997.87, 'M5-M9.9']

# 绘制散点图
plt.scatter(x=[1997.87], y=[target_count], s=120, color='darkred')
plt.xlabel('时间值')
plt.ylabel('耀斑次数')
plt.title('1997.87 时段 M5-M9.9 级耀斑发生次数')
plt.grid(axis='y', linestyle='--')
plt.show()

如果需要可视化所有时间点的各类别次数,推荐绘制分组柱状图:

# 分组柱状图展示所有时间点的各类别次数
count_df.plot(kind='bar', figsize=(12, 7), rot=45)
plt.xlabel('时间值')
plt.ylabel('耀斑次数')
plt.title('各时段不同级别太阳耀斑发生次数统计')
plt.legend(title='耀斑级别', bbox_to_anchor=(1.05, 1), loc='upper left')
plt.tight_layout()
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 17:30:06