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

如何用Python绘制单光子探测器光子计数率直方图CSV数据?

用Python绘制单光子计数率数据的方法

准备工作

先确保安装了必要的Python库,打开终端执行:

pip install pandas matplotlib

情况1:CSV存储的是原始光子计数测量值

如果你的5000个数据点是每次测量得到的光子计数原始值,需要统计并绘制直方图,代码如下:

import pandas as pd
import matplotlib.pyplot as plt

# 读取单列CSV数据(无表头)
data = pd.read_csv("your_data.csv", header=None)
# 提取数据列并转为一维数组
counts = data[0].values

# 绘制直方图
plt.figure(figsize=(10, 6))
# bins参数可调整区间数量,根据数据分布自行设置
n, bins, patches = plt.hist(counts, bins=50, edgecolor='black')

# 设置图表样式
plt.title("单光子探测器计数率直方图")
plt.xlabel("计数率")
plt.ylabel("出现次数")
plt.grid(axis='y', alpha=0.75)

# 显示图形(如需保存图片,可在该行前添加plt.savefig("count_hist.png"))
plt.show()

情况2:CSV存储的是已统计好的直方图区间计数

如果你的数据已经是分区间统计后的计数值(比如每一行对应一个区间的计数次数),需要先定义x轴的区间标签,再绘制柱状图:

import pandas as pd
import matplotlib.pyplot as plt

# 读取数据并转为一维数组
counts = pd.read_csv("your_data.csv", header=None).values.flatten()

# 生成x轴区间:示例为按数据点数量均分,可根据实际区间范围修改
x = range(len(counts))
# 若已知区间步长,比如步长为2,可改为:x = [i*2 for i in range(len(counts))]

# 绘制柱状图
plt.figure(figsize=(10, 6))
plt.bar(x, counts, width=0.8, edgecolor='black')

# 设置图表样式
plt.title("单光子探测器计数率分布")
plt.xlabel("计数区间")
plt.ylabel("计数次数")
plt.grid(axis='y', alpha=0.75)

plt.show()

注意事项

  • 替换代码中的your_data.csv为你的实际文件路径
  • 可根据数据分布调整bins参数(直方图)或区间范围(柱状图),让图形展示更直观

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 13:32:08