HEP的Matplotlib样式
mplhep的Python项目详细描述
在 在
一组帮助器,matplotlib
可以更容易地生成绘图
需要在HEP以及风格他们的方式,以兼容电流
协作要求(CMS、ATLAS、LHCb、ALICE的根状图)。在
安装
pip install mplhep
入门
造型
^{pr2}$样式也可以直接从matplotlib
API设置
importmatplotlib.pyplotaspltimportmplhepashepplt.style.use(hep.style.ROOT)
还提供实验专用样式。如果默认样式不是您需要的,我很乐意合并为新样式或修改当前样式。
默认实验标签也可用。在
# Overall - both left and right annotationhep.<experiment>.label()# Just experiment label and <text> such as 'Preliminary' or 'Simulation'hep.<experiment>.text(<text>)
绘制
1D直方图
h,bins=[2,3,2],[0,1,2,3]hep.histplot(h,bins)
2D直方图
importnumpyasnpxbins,ybins=[0,1,2,3],[0,1,2,3]H=np.array([[2,3,2],[1,2,1],[3,1,3]])hep.hist2dplot(H,xbins,ybins)
更多信息
其他款式:
hep.set_style("fira")
-使用Fira SANhep.set_style("firamath")
-使用Fira数学
可以链接样式:
- e、 g.
hep.set_style(["CMS", "fira", "firamath"])
- 重新出现
rcParams
被静默覆盖
可以动态修改样式
- 因为样式是字典,它们可以被链接/覆盖,所以可以很容易地动态修改。e、 g
hep.set_style("CMS")
hep.set_style({"font.sans-serif":'Comic Sans MS'})
乳胶造型
hep.set_style("CMSTex")
-使用乳胶生成所有文本标签- 需要有完整的tex live发行版
- 真海尔维提卡
- 使用sansmath作为数学字体
- 需要更长时间,但并不总是更好
- 一般来说,可能性更大,但要想让一切正常运转就更难了
注释
一致性和字体
hep.set_style("fira")
-使用Fira SANhep.set_style("firamath")
-使用Fira数学hep.set_style(["CMS", "fira", "firamath"])
rcParams
被静默覆盖hep.set_style("CMS")
hep.set_style({"font.sans-serif":'Comic Sans MS'})
hep.set_style("CMSTex")
-使用乳胶生成所有文本标签因为它是根不附带任何字体,因此依赖于使用系统字体。因此,图形中的字体取决于它是在OSX上还是在PC上生成的。默认的无衬线字体是Helvetica,但它只随OSX一起提供,在Windows中,它会自动退到Arial。在
许可证
Helvetica和Arial都是专有的,就字体而言,这意味着您可以使用它来创建任何文本/图形,但您不能将字体文件作为其他软件的一部分重新分发。这意味着我们不能仅仅用这个来包装Helvetica来确保每个人都有相同的字体。在
幸运的是字体似乎只有软件是有版权的,而不是实际的形状,这意味着有相当多的开放的替代品与类似的外观。最像海尔维提卡的是德克萨斯州的回旋英雄
德州旋回英雄
http://www.gust.org.pl/projects/e-foundry/tex-gyre/heros
如果下面的差异有意义,你可以自己比较一下。在
在 在
他们分别是特克斯盖尔英雄,海尔维蒂卡和阿里尔。在
数学字体
- 由于特殊字符的数量,数学字体与常规字体是分开的
- 确保你得到一个匹配的数学字体和你的常规字体不是一件小事
- 最理想的字体是无衬线字体
- sans-serif数学字体的数量非常有限
- opensans-serif数学字体的数量是extreme有限的
- 基本上有两种,Fira Sans和GFS新希腊数学,其中我更喜欢Fira Sans
- https://tex.stackexchange.com/questions/374250/are-there-opentype-sans-math-fonts-under-development
为了保持一致的风格,还包括Fira Sans。在
默认Fira SAN
https://github.com/mozilla/Fira
数学字体扩展
https://github.com/firamath/firamath
什么不管用
上下文样式和字体
withpyplot.style.context(style.ROOT):plotting...
- 这种语法是理想的,但是,它不适合字体,而且mpl开发人员也没有计划修复这种行为https://github.com/matplotlib/matplotlib/issues/11673
现在必须全局设置样式:
用于出版物
更新出版物中mplhep
的引文和用例列表:
- Simultaneous Jet Energy and Mass Calibrations with Neural Networks,阿特拉斯合作,2019年
- Integration and Performance of New Technologies in the CMS Simulation,凯文·佩德罗,2020年(图3.4)
- GeantV: Results from the prototype of concurrent vector particle transport simulation in HEP,Amadio等人,2020年(图25,26)
- Search for the standard model Higgs boson decaying to charm quarks,CMS合作,2019(图1)
- 项目
标签: