在python/matplotlib中绘制CAFAna对象的库

cafplot的Python项目详细描述


咖啡园

在python/matplotlib中绘制CAFAna对象的库。在

cafplot旨在提供一组函数,以便轻松绘制CAFAna 具有matplotlib库的对象(光谱、曲面等)。在

为什么是cafplot?在

那么,为什么要使用cafplot进行绘图,而不是直接使用CAFAna/ROOT呢 功能?以下是您可能对cafplot感兴趣的几个原因

  • 易于开发。python类型系统的动态特性, 通用成熟的标准库和丰富的python包生态系统将 与c++相比,使用python编写代码要轻松得多。期待你的Python 脚本是2-3 times shorter比可比的c++版本。在
  • Run Anywherecafplot只依赖于几个标准的python包 用于绘图。这允许您在几乎所有计算机上运行cafplot脚本 最小的设置。这与卡法纳的剧本形成了鲜明的对比 您需要先设置/编译NOvA Art framework。在
  • Speed。是的,使用python/matplotlib打印比使用快得多 咖啡/根。在编译绘图CAFAna宏时 类似的python脚本应该已经运行完毕。在
  • 可转移知识。与根框架的知识不同 具体到学术界,这两个领域都需要python/matplotlib栈的知识 学术界和工业界。在

安装

您可以使用pip或手动安装cafplot。在

使用PyPI

只需运行:

$ pip install cafplot

手动安装

  1. 关闭存储库
^{pr2}$
  1. 安装cafplot
$ cd cafplot
$ python setup.py install

支持读取根文件

如果需要支持读取根文件,则需要uproot包 以及:

$ pip install uproot

入门

让我们看一个绘制CAFAna频谱的简单示例。cafplot本身 不支持从caf文件创建CAFAna光谱,这意味着 只用于绘图。相应地,必须填充和创建光谱 先去卡法纳。在

在本例中,我们将使用CAFAna演示脚本 CAFAna/tute/demo2p5a.C来创建频谱。运行此演示后 脚本我们将得到一个名为save_your_spectra_to_disk.root的根文件,其中包含 一维光谱dir_nhit_spectra。现在,我们将使用cafplot绘制它。 首先,我们需要导入几个包:

importmatplotlib.pyplotaspltfromcafplotimportloadfromcafplot.plotimport*

导入完成后,让我们从一个文件加载CAFAna频谱 save_your_spectra_to_disk.root(这将需要uproot包 已安装):

root_file=load("save_your_spectra_to_disk.root")spectrum=root_file.get_spectrum("dir_nhit_spectra")

在这个操作之后,我们将把CAFAna频谱加载到spectrum 变量。与CAFAna类似,在绘制光谱之前,我们需要提取 标准化直方图。让我们通过POT将其规范化为9e20。在

root_hist=spectrum.rhist(pot=9e20)

{我们准备好了,我们的第一个光谱

f,ax=plt.subplots()# Create matplotlib Figure/Axesplot_rhist1d(ax,root_hist,'NHit',histtype="step",color="red")plt.show()# show plot

你应该可以看到绘制的光谱在一个单独的窗口中打开。在

文件

Getting Started中概述了如何使用cafplot的基本示例 第节。中提供了cafplot用法的更完整示例 examples/子目录。特别是,你可能会对 spectrum_plot.py–关于如何绘制CAFAna光谱的完整示例 和surf_plot.py——绘制CAFAna FrequentistSurface的示例。在

进一步的文档请参考python docstrings cafplot模块。在

依赖性

cafplot是用python版本3编写的,不能与python一起使用 版本2。它需要以下软件包才能正常运行:

  • numpy
  • matplotlib
  • scipy-此时cafplot只使用stats子包 属于scipy。在

另外,如果支持读取,可能需要安装uproot 需要根文件中的CAFAna对象。在

代码概述

cafplot有几个不同用途的子包:

  • plotsubpackage包含用于绘图的函数集合 RHistSpectrumSurface对象。在
  • rfilesubpackage包含用于加载CAFAna的函数和类 来自不同文件的对象(当前支持根文件和json文件)。在
  • rhistsubpackage包含近似行为的RHist类 根直方图类的。在
  • spectrumsubpackage定义Spectrum类与CAFAna一起工作 光谱。在
  • stats子包,用于各种统计例程。在
  • surfacesubpackage包含Surface类以与CAFAna一起工作 表面。在

待办事项

  • 添加对绘制二进制统计信息的支持
  • 添加对绘制ROC曲线的支持

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaFX SwingWorker等价物?   java如何检查一个字符串只包含数字和一个小数点?   java遇到了异常组织。阿帕奇。卡塔琳娜。LifecycleException:无法启动组件   java如何从日期格式获取最低计时单位?   java应用服务器与开发过程的集成   java我无法运行Junit测试   无法在java多线程处理中维护生产者任务的顺序   java如何在CLI应用程序中“拦截”Ctrl+C?   java如何使用JSch进行原子SFTP文件传输,以便在写入过程完成之前无法访问该文件?   java当用户摆弄html范围滑块时,如何更改内容(文本)?   如何在Java中向现有文件追加文本?   JUnit测试中的java模拟Apache驼峰位置   java Maven更新项目和依赖项