added mean and std to plot
This commit is contained in:
+27
-25
@@ -7,6 +7,8 @@ from jfcal.utils import create_histogram_from_data
|
||||
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
import numpy as np
|
||||
|
||||
from enum import Enum
|
||||
|
||||
class Parameters(Enum):
|
||||
@@ -81,7 +83,7 @@ class Plotter:
|
||||
The axis with the histogram and fitted function plot.
|
||||
"""
|
||||
|
||||
function_parameters = self.calibration.fit_results["par"][pixel[0],pixel[1],:]
|
||||
function_parameters = self.calibration.fit_result["par"][pixel[0],pixel[1],:]
|
||||
|
||||
variable_name_width = 8
|
||||
variable_width = 8
|
||||
@@ -125,21 +127,21 @@ class Plotter:
|
||||
"""
|
||||
match parameter_name:
|
||||
case Parameters.ELASTIC_SCATTERING_INTERCEPT.value:
|
||||
plot_parameter(self.calibration.fit_results["par"][:, :, 0], parameter_name="Elastic scattering intercept", suppress_outliers=suppress_outliers)
|
||||
plot_parameter(self.calibration.fit_result["par"][:, :, 0], parameter_name="Elastic scattering intercept", suppress_outliers=suppress_outliers)
|
||||
case Parameters.ELASTIC_SCATTERING_SLOPE.value:
|
||||
plot_parameter(self.calibration.fit_results["par"][:, :, 1], parameter_name="Elastic scattering slope", suppress_outliers=suppress_outliers)
|
||||
plot_parameter(self.calibration.fit_result["par"][:, :, 1], parameter_name="Elastic scattering slope", suppress_outliers=suppress_outliers)
|
||||
case Parameters.K_ALPHA_MEAN.value:
|
||||
plot_parameter(self.calibration.fit_results["par"][:, :, 2], parameter_name="Cu K_alpha mean", suppress_outliers=suppress_outliers)
|
||||
plot_parameter(self.calibration.fit_result["par"][:, :, 2], parameter_name="Cu K_alpha mean", suppress_outliers=suppress_outliers)
|
||||
case Parameters.SIGMA.value:
|
||||
plot_parameter(self.calibration.fit_results["par"][:, :, 3], parameter_name="Charge sharing sigma", suppress_outliers=suppress_outliers)
|
||||
plot_parameter(self.calibration.fit_result["par"][:, :, 3], parameter_name="Charge sharing sigma", suppress_outliers=suppress_outliers)
|
||||
case Parameters.K_ALPHA_AMPLITUDE.value:
|
||||
plot_parameter(self.calibration.fit_results["par"][:, :, 4], parameter_name="Cu K_alpha amplitude", suppress_outliers=suppress_outliers)
|
||||
plot_parameter(self.calibration.fit_result["par"][:, :, 4], parameter_name="Cu K_alpha amplitude", suppress_outliers=suppress_outliers)
|
||||
case Parameters.RATIO_AMPLITUDE_CHARGE_SHARING.value:
|
||||
plot_parameter(self.calibration.fit_results["par"][:, :, 5], parameter_name="Charge sharing amplitude ratio", suppress_outliers=suppress_outliers)
|
||||
plot_parameter(self.calibration.fit_result["par"][:, :, 5], parameter_name="Charge sharing amplitude ratio", suppress_outliers=suppress_outliers)
|
||||
case Parameters.RATIO_MEAN_K_BETA.value:
|
||||
plot_parameter(self.calibration.fit_results["par"][:, :, 6], parameter_name="Cu K_beta mean ratio", suppress_outliers=suppress_outliers)
|
||||
plot_parameter(self.calibration.fit_result["par"][:, :, 6], parameter_name="Cu K_beta mean ratio", suppress_outliers=suppress_outliers)
|
||||
case Parameters.RATIO_AMPLITUDE_K_BETA.value:
|
||||
plot_parameter(self.calibration.fit_results["par"][:, :, 7], parameter_name="Cu K_beta amplitude ratio", suppress_outliers=suppress_outliers)
|
||||
plot_parameter(self.calibration.fit_result["par"][:, :, 7], parameter_name="Cu K_beta amplitude ratio", suppress_outliers=suppress_outliers)
|
||||
case _:
|
||||
raise ValueError(f"Unknown parameter name: {parameter_name}. Valid options are: {[param.value for param in Parameters]}")
|
||||
|
||||
@@ -169,37 +171,37 @@ class Plotter:
|
||||
|
||||
match parameter_name:
|
||||
case Parameters.ELASTIC_SCATTERING_INTERCEPT.value:
|
||||
data = self.calibration.fit_results["par"][:, :, 0].flatten()
|
||||
data = self.calibration.fit_result["par"][:, :, 0].flatten()
|
||||
histogram = create_histogram_from_data(data, bin_range = bin_range, bin_width = bin_width)
|
||||
ax = plot_histogram(histogram, histogram.axes[0].edges[:], xlabel=r"Elastic scattering intercept", axis=axis)
|
||||
ax = plot_histogram(histogram, histogram.axes[0].edges[:], xlabel=r"Elastic scattering intercept", label = f"Mean: {np.mean(data):.3f}\nStd: {np.std(data):.3f}", axis=axis)
|
||||
case Parameters.ELASTIC_SCATTERING_SLOPE.value:
|
||||
data = self.calibration.fit_results["par"][:, :, 1].flatten()
|
||||
data = self.calibration.fit_result["par"][:, :, 1].flatten()
|
||||
histogram = create_histogram_from_data(data, bin_range = bin_range, bin_width = bin_width)
|
||||
ax = plot_histogram(histogram, histogram.axes[0].edges[:], xlabel=r"Elastic scattering slope", axis=axis)
|
||||
ax = plot_histogram(histogram, histogram.axes[0].edges[:], xlabel=r"Elastic scattering slope", label = f"Mean: {np.mean(data):.3f}\nStd: {np.std(data):.3f}", axis=axis)
|
||||
case Parameters.K_ALPHA_MEAN.value:
|
||||
data = self.calibration.fit_results["par"][:, :, 2].flatten()
|
||||
data = self.calibration.fit_result["par"][:, :, 2].flatten()
|
||||
histogram = create_histogram_from_data(data, bin_range = bin_range, bin_width = bin_width)
|
||||
ax = plot_histogram(histogram, histogram.axes[0].edges[:], xlabel=r"$k_\alpha$ mean", axis=axis)
|
||||
ax = plot_histogram(histogram, histogram.axes[0].edges[:], xlabel=r"$k_\alpha$ mean", label = f"Mean: {np.mean(data):.3f}\nStd: {np.std(data):.3f}", axis=axis)
|
||||
case Parameters.SIGMA.value:
|
||||
data = self.calibration.fit_results["par"][:, :, 3].flatten()
|
||||
data = self.calibration.fit_result["par"][:, :, 3].flatten()
|
||||
histogram = create_histogram_from_data(data, bin_range = bin_range, bin_width = bin_width)
|
||||
ax = plot_histogram(histogram, histogram.axes[0].edges[:], xlabel=r"$\sigma$", axis=axis)
|
||||
ax = plot_histogram(histogram, histogram.axes[0].edges[:], xlabel=r"$\sigma$", label = f"Mean: {np.mean(data):.3f}\nStd: {np.std(data):.3f}", axis=axis)
|
||||
case Parameters.K_ALPHA_AMPLITUDE.value:
|
||||
data = self.calibration.fit_results["par"][:, :, 4].flatten()
|
||||
data = self.calibration.fit_result["par"][:, :, 4].flatten()
|
||||
histogram = create_histogram_from_data(data, bin_range = bin_range, bin_width = bin_width)
|
||||
ax = plot_histogram(histogram, histogram.axes[0].edges[:], xlabel=r"$k_\alpha$ amplitude", axis=axis)
|
||||
ax = plot_histogram(histogram, histogram.axes[0].edges[:], xlabel=r"$k_\alpha$ amplitude", label = f"Mean: {np.mean(data):.3f}\nStd: {np.std(data):.3f}", axis=axis)
|
||||
case Parameters.RATIO_AMPLITUDE_CHARGE_SHARING.value:
|
||||
data = self.calibration.fit_results["par"][:, :, 5].flatten()
|
||||
data = self.calibration.fit_result["par"][:, :, 5].flatten()
|
||||
histogram = create_histogram_from_data(data, bin_range = bin_range, bin_width = bin_width)
|
||||
ax = plot_histogram(histogram, histogram.axes[0].edges[:], xlabel=r"Ratio amplitude charge sharing", axis=axis)
|
||||
ax = plot_histogram(histogram, histogram.axes[0].edges[:], xlabel=r"Ratio amplitude charge sharing", label = f"Mean: {np.mean(data):.3f}\nStd: {np.std(data):.3f}", axis=axis)
|
||||
case Parameters.RATIO_MEAN_K_BETA.value:
|
||||
data = self.calibration.fit_results["par"][:, :, 6].flatten()
|
||||
data = self.calibration.fit_result["par"][:, :, 6].flatten()
|
||||
histogram = create_histogram_from_data(data, bin_range = bin_range, bin_width = bin_width)
|
||||
ax = plot_histogram(histogram, histogram.axes[0].edges[:], xlabel=r"Ratio $k_\beta$ mean", axis=axis)
|
||||
ax = plot_histogram(histogram, histogram.axes[0].edges[:], xlabel=r"Ratio $k_\beta$ mean", label = f"Mean: {np.mean(data):.3f}\nStd: {np.std(data):.3f}", axis=axis)
|
||||
case Parameters.RATIO_AMPLITUDE_K_BETA.value:
|
||||
data = self.calibration.fit_results["par"][:, :, 7].flatten()
|
||||
data = self.calibration.fit_result["par"][:, :, 7].flatten()
|
||||
histogram = create_histogram_from_data(data, bin_range = bin_range, bin_width = bin_width)
|
||||
ax = plot_histogram(histogram, histogram.axes[0].edges[:], xlabel=r"Ratio $k_\beta$ amplitude", axis=axis)
|
||||
ax = plot_histogram(histogram, histogram.axes[0].edges[:], xlabel=r"Ratio $k_\beta$ amplitude", label = f"Mean: {np.mean(data):.3f}\nStd: {np.std(data):.3f}", axis=axis)
|
||||
case _:
|
||||
raise ValueError(f"Unknown parameter name: {parameter_name}. Valid options are: {[param.value for param in Parameters]}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user