首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在zfit中将直方图(2D)转换为2pdf?

在zfit中将直方图(2D)转换为2D PDF,可以通过以下步骤实现:

  1. 导入必要的库和模块:
代码语言:txt
复制
import zfit
import numpy as np
import matplotlib.pyplot as plt
  1. 创建直方图数据:
代码语言:txt
复制
x_data = np.random.normal(0, 1, 10000)
y_data = np.random.normal(0, 1, 10000)
hist = zfit.hist2d(x=x_data, y=y_data, bins=(100, 100), range=((-5, 5), (-5, 5)))
  1. 创建模型:
代码语言:txt
复制
obs = hist.axes[0], hist.axes[1]
mean = zfit.Parameter("mean", 0, -5, 5)
sigma_x = zfit.Parameter("sigma_x", 1, 0, 5)
sigma_y = zfit.Parameter("sigma_y", 1, 0, 5)
model = zfit.models.Gauss2D(obs=obs, mean=mean, sigma_x=sigma_x, sigma_y=sigma_y)
  1. 定义损失函数并进行最小化:
代码语言:txt
复制
extended_hist = hist.create_extended(sampled_values=True)
nll = zfit.loss.UnbinnedNLL(model=model, data=extended_hist)
minimizer = zfit.minimize.Minuit()
result = minimizer.minimize(nll)
  1. 绘制结果:
代码语言:txt
复制
x_values = np.linspace(-5, 5, 100)
y_values = np.linspace(-5, 5, 100)
x_mesh, y_mesh = np.meshgrid(x_values, y_values)
values = model.pdf(x=x_mesh, y=y_mesh).numpy()

plt.figure()
plt.pcolormesh(x_mesh, y_mesh, values, shading='auto')
plt.colorbar()
plt.xlabel('x')
plt.ylabel('y')
plt.title('2D PDF')
plt.show()

这样,你就可以在zfit中将直方图(2D)转换为2D PDF,并进行可视化展示。请注意,上述代码仅提供了实现的基本框架,具体细节可能需要根据实际情况进行调整和优化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券