Source code for pyleecan.Methods.Output.Output.plot.plot_A_cfft2

# -*- coding: utf-8 -*-

from .....Functions.Plot.plot_A_cfft2 import plot_A_cfft2 as plot_A_cfft2_fct
from .....Functions.init_fig import init_fig
from SciDataTool import VectorField

from matplotlib.pyplot import subplots


[docs]def plot_A_cfft2( self, Data_str, is_elecorder=False, is_spaceorder=False, freq_max=20000, r_max=100, mag_max=None, N_stem=100, disp_negative=False, is_norm=False, unit="SI", save_path=None, component_list=None, ): """3D stem plot of the 2D Fourier Transform of a field Parameters ---------- self : Output an Output object Data_str : str name of the Data Object to plot (e.g. "mag.Br") is_elecorder : bool boolean indicating if we want to use the electrical order for the fft axis is_spaceorder : bool boolean indicating if we want to use the spatial order for the fft axis freq_max : int maximum value of the frequency for the fft axis r_max : int maximum value of the wavenumber for the fft axis mag_max : int maximum value of the magnitude N_stem : int number of stems to plot disp_negative : bool plot negative frequencies is_norm : bool boolean indicating if the field must be normalized unit : str unit in which to plot the field save_path : str path and name of the png file to save component_list : list list of component names to plot in separate figures """ # Get Data object names phys = getattr(self, Data_str.split(".")[0]) data = getattr(phys, Data_str.split(".")[1]) # Call the plot function if isinstance(data, VectorField): if component_list is None: # default: extract all components component_list = data.components.keys() ncomp = len(component_list) fig, axs = subplots( 1, ncomp, tight_layout=True, figsize=(20, 10), subplot_kw=dict(projection="3d"), ) for i, comp in enumerate(component_list): plot_A_cfft2_fct( data.components[comp], is_elecorder=is_elecorder, is_spaceorder=is_spaceorder, freq_max=freq_max, r_max=r_max, mag_max=mag_max, N_stem=N_stem, is_norm=is_norm, unit=unit, save_path=save_path, fig=fig, subplot_index=i, ) else: (fig, axes, patch_leg, label_leg) = init_fig( None, shape="rectangle", is_3d=True ) plot_A_cfft2_fct( data, is_elecorder=is_elecorder, is_spaceorder=is_spaceorder, freq_max=freq_max, r_max=r_max, mag_max=mag_max, N_stem=N_stem, disp_negative=disp_negative, is_norm=is_norm, unit=unit, save_path=save_path, fig=fig, ) fig.show()