Hist — это удобный для аналитиков интерфейс для повышения гистограммы, разработанный для Python 3.8+ (пользователи 3.6–3.7 получают более старые версии). Посмотрите, что нового.
Вы можете установить эту библиотеку из PyPI с помощью pip:
python3 -m pip install " hist[plot,fit] "
Если вам не нужны функции построения графиков, вы можете пропустить дополнительные функции [plot]
и/или [fit]
. [fit]
в настоящее время не поддерживается в WebAssembly.
В настоящее время Hist предоставляет все возможности boost-гистограммы, а также следующие улучшения:
Hist дополняет оси именами:
name=
— это уникальная метка, описывающая каждую ось.label=
— необязательная строка, которая используется при построении графика (по умолчанию используется name
, если оно не указано).NamedHist
— это Hist
, который отключает большинство форм позиционного доступа, заставляя пользователей использовать только имена. Класс Hist
дополняет bh.Histogram
более простой конструкцией:
flow=False
— это быстрый способ отключить поток для осей при построении.storage=
можно опустить, строки и хранилища могут быть позиционными.data=
может инициализировать гистограмму существующими данными.Hist.from_columns
можно использовать для инициализации с помощью DataFrame или dict.Hist поддерживает QuickConstruct, систему построения без импорта, которая не требует дополнительного импорта:
Hist.new.().().()
.Regular
) или краткими ( Reg
).data=
) могут храниться в хранилище.Расширенные функции гистограммы:
.name
и .label
, например осей..density()
вычисляет плотность как массив..profile(remove_ax)
может преобразовать гистограмму ND COUNT в гистограмму (N-1)D MEAN..sort(axis)
поддерживает сортировку гистограммы по категориальной оси. При необходимости принимает функцию для сортировки..fill_flattened(...)
выровняет и заполнит, включая поддержку AwkwardArray..integrate(...)
, который принимает аргументы, противоположные .project
.Hist реализует UHI+; расширение системы UHI (унифицированное индексирование гистограмм), предназначенное для интерактивности без импорта:
j
для переключения на координаты данных в доступе или срезах.j
для фрагментов для повторного объединения.Быстрые процедуры построения графиков стимулируют исследование:
.plot()
предоставляет 1D и 2D графики (или используйтеplot1d plot1d()
, plot2d()
)..plot2d_full()
показывает 1D-проекты вокруг 2D-графика..plot_ratio(...)
создает график соотношения между гистограммой и другой гистограммой или вызываемым объектом..plot_pull(...)
выполняет вытягивание графика..plot_pie()
создает круговую диаграмму..show()
обеспечивает красивую распечатку строк с помощью Histoprint.Стеки: работа с группами гистограмм с одинаковыми осями.
h.stack(axis)
, используя индекс или имя оси (идеально использовать оси StrCategory
).hist.stacks.Stack(h1, h2, ...)
или использовать from_iter
или from_dict
..plot()
и .show()
с именами (метки графика по умолчанию соответствуют исходной информации об осях)..project
, *
, +
и -
.Новые модули
intervals
поддерживают частотные интервалы покрытия.Ноутбук готов: Hist имеет великолепное представление в блокноте.
from hist import Hist
# Quick construction, no other imports needed:
h = (
Hist . new . Reg ( 10 , 0 , 1 , name = "x" , label = "x-axis" )
. Var ( range ( 10 ), name = "y" , label = "y-axis" )
. Int64 ()
)
# Filling by names is allowed:
h . fill ( y = [ 1 , 4 , 6 ], x = [ 3 , 5 , 2 ])
# Names can be used to manipulate the histogram:
h . project ( "x" )
h [{ "y" : 0.5j + 3 , "x" : 5j }]
# You can access data coordinates or rebin with a `j` suffix:
h [ 0.3j :, :: 2j ] # x from .3 to the end, y is rebinned by 2
# Elegant plotting functions:
h . plot ()
h . plot2d_full ()
h . plot_pull ( Callable )
Из проверки git либо используйте nox, либо запустите:
python -m pip install -e .[dev]
Информацию о настройке среды разработки см. в Руководстве по участию.
Мы хотели бы выразить признательность тем, кто сделал этот проект возможным (ключ эмодзи):
Генри Шрайнер ? | Нино Лау ? | Крис Берр | Ник Амин | Эдуардо Родригес | Анджей Новак | Мэтью Фейкерт |
Кайл Крэнмер | Дэниел Антрим | Николас Смит | Михаил Эльяхевич | Йонас Эшле |
Этот проект соответствует спецификации всех участников.
Эта библиотека была в первую очередь разработана Генри Шрайнером и Нино Лау.
Поддержка этой работы была предоставлена соглашением о сотрудничестве Национального научного фонда OAC-1836650 (IRIS-HEP) и OAC-1450377 (DIANA/HEP). Любые мнения, выводы, выводы или рекомендации, выраженные в этом материале, принадлежат авторам и не обязательно отражают точку зрения Национального научного фонда.