Module pyangstrom.visualization.signal

Expand source code
from typing import Optional

from matplotlib.axes import Axes

from pyangstrom.signal import SignalResult
from pyangstrom.fit import FittingResult


MARGINS_MULTIPLIERS = {
    'm': 1.,
    'meters': 1.,
    'mm': 1e3,
    'millimeters': 1e3,
}

def plot_amplitude_ratios(
        ax: Axes,
        signal_result: SignalResult,
        fitting_result: Optional[FittingResult] = None,
        displacements_unit: str = 'mm',
) -> Axes:
    x = (MARGINS_MULTIPLIERS[displacements_unit]
         * signal_result.margins.displacements_meters)
    ax.plot(
        x,
        signal_result.signal_properties.amplitude_ratios,
        'o',
        label="Observed",
    )
    if fitting_result:
        ax.plot(
            x,
            fitting_result.theoretical_properties.amplitude_ratios,
            label="Theoretical",
        )
        ax.legend()
    ax.set_title("Amplitude Ratios")
    ax.set_xlabel(f"Displacement from heat source ({displacements_unit})")
    ax.set_ylabel("Ratio")
    return ax

def plot_phase_differences(
        ax: Axes,
        signal_result: SignalResult,
        fitting_result: Optional[FittingResult] = None,
        displacements_unit: str = 'mm',
) -> Axes:
    x = (MARGINS_MULTIPLIERS[displacements_unit]
         * signal_result.margins.displacements_meters)
    ax.plot(
        x,
        signal_result.signal_properties.phase_differences,
        'o',
        label="Observed",
    )
    if fitting_result:
        ax.plot(
            x,
            fitting_result.theoretical_properties.phase_differences,
            label="Theoretical",
        )
        ax.legend()
    ax.set_title("Phase Differences")
    ax.set_xlabel(f"Displacement from heat source ({displacements_unit})")
    ax.set_ylabel("Difference")
    return ax

Functions

def plot_amplitude_ratios(ax: matplotlib.axes._axes.Axes, signal_result: SignalResult, fitting_result: Optional[FittingResult] = None, displacements_unit: str = 'mm') ‑> matplotlib.axes._axes.Axes
Expand source code
def plot_amplitude_ratios(
        ax: Axes,
        signal_result: SignalResult,
        fitting_result: Optional[FittingResult] = None,
        displacements_unit: str = 'mm',
) -> Axes:
    x = (MARGINS_MULTIPLIERS[displacements_unit]
         * signal_result.margins.displacements_meters)
    ax.plot(
        x,
        signal_result.signal_properties.amplitude_ratios,
        'o',
        label="Observed",
    )
    if fitting_result:
        ax.plot(
            x,
            fitting_result.theoretical_properties.amplitude_ratios,
            label="Theoretical",
        )
        ax.legend()
    ax.set_title("Amplitude Ratios")
    ax.set_xlabel(f"Displacement from heat source ({displacements_unit})")
    ax.set_ylabel("Ratio")
    return ax
def plot_phase_differences(ax: matplotlib.axes._axes.Axes, signal_result: SignalResult, fitting_result: Optional[FittingResult] = None, displacements_unit: str = 'mm') ‑> matplotlib.axes._axes.Axes
Expand source code
def plot_phase_differences(
        ax: Axes,
        signal_result: SignalResult,
        fitting_result: Optional[FittingResult] = None,
        displacements_unit: str = 'mm',
) -> Axes:
    x = (MARGINS_MULTIPLIERS[displacements_unit]
         * signal_result.margins.displacements_meters)
    ax.plot(
        x,
        signal_result.signal_properties.phase_differences,
        'o',
        label="Observed",
    )
    if fitting_result:
        ax.plot(
            x,
            fitting_result.theoretical_properties.phase_differences,
            label="Theoretical",
        )
        ax.legend()
    ax.set_title("Phase Differences")
    ax.set_xlabel(f"Displacement from heat source ({displacements_unit})")
    ax.set_ylabel("Difference")
    return ax