report.Chart2D#

class Chart2D#

Bases: BaseChart2D

Represents a 2D chart within a report, plotting x and y data.

Example

  • Create a chart of CL for an alpha sweep case, different turbulence models

>>> Chart2D(
...     x="params/operating_condition/beta",
...     y=DataItem(data="total_forces/CL", operations=[Average(fraction=0.1)]),
...     section_title="CL vs alpha",
...     fig_name="cl_vs_alpha",
...     group_by=Grouper(group_by="params/models/Fluid/turbulence_model_solver/type_name"),
... )

Attributes

section_title: str, optional#

The title of the chart section.

Default:

None

fig_name: str, optional#

Name of the figure file or identifier for the chart (). Only ‘^[a-zA-Z0-9._-]+$’ allowed.

Default:

None

fig_size: float#

Relative size of the figure as a fraction of text width.

Default:

0.7

items_in_row: int, optional#

Number of items to display in a row within the chart section.

Default:

None

select_indices: list[int], optional#

Specific indices to select for the chart.

Default:

None

separate_plots: bool, optional#

If True, display as multiple plots; otherwise single plot.

Default:

None

force_new_page: bool#

If True, starts the chart on a new page in the report.

Default:

False

caption: str | list[str] | PatternCaption, optional#

Caption to be shown for figures.

Default:

''

operations: list[Average | Expression | GetAttribute] | Average | Expression | GetAttribute, optional#

List of operations to perform on the data.

Default:

None

focus_x: tuple[float, float], optional#
Default:

None

xlim: ManualLimit | tuple[float, float], optional#

Defines the range of x values that will be displayed on the chart.

Default:

None

ylim: ManualLimit | SubsetLimit | FixedRangeLimit | tuple[float, float], optional#

Defines the range of y values that will be displayed on the chart. This helps with highlighting a desired portion of the chart.

Default:

None

y_log: bool, optional#

Sets the y axis to logarithmic scale. Defaults to False.

Default:

False

show_grid: bool, optional#

Turns the gridlines on. Defaults to True.

Default:

True

x: DataItem | Delta | str#

The data source for the x-axis, which can be a string path, ‘DataItem’, a ‘Delta’ object.

y: DataItem | Delta | str | list[DataItem] | list[Delta] | list[str]#

The data source for the y-axis, which can be a string path, ‘DataItem’, a ‘Delta’ object or their list.

group_by: str | Grouper, optional#

A grouper object or a string leading to the data by which the grouping should be done.

Default:

Grouper()

include: list[str], optional#

List of boundaries to include in data. Applicable to: x_slicing_force_distribution, y_slicing_force_distribution, surface_forces.

Default:

None

exclude: list[str], optional#

List of boundaries to exclude from data. Applicable to: x_slicing_force_distribution, y_slicing_force_distribution, surface_forces.

Default:

None

background: Literal['geometry'], optional#

Background type for the chart; set to “geometry” or None. Defaults to None.

Default:

None

Additional Constructors

classmethod from_file(filename)#

Loads a Flow360BaseModel from .json, or .yaml file.

Parameters:

filename (str) – Full path to the .yaml or .json file to load the Flow360BaseModel from.

Returns:

An instance of the component class calling load.

Return type:

Flow360BaseModel

Example

>>> params = Flow360BaseModel.from_file(filename='folder/sim.json') 

Methods

get_requirements()#

Returns requirements for this item.

get_background_chart3d(cases)#

Returns Chart3D for background.

Return type:

Tuple[Chart3D, Case]

is_log_plot()#

Determines if the plot is logarithmic.

Return type:

bool

get_data(cases, context)#

Loads and processes data for creating a 2D plot model.

Parameters:
  • cases (List[Case]) – A list of simulation cases to extract data from.

  • context (ReportContext) – The report context providing additional configuration and case-specific data.

Returns:

A PlotModel instance containing the processed x and y data, axis labels, legend, and optional background image for plotting.

Return type:

PlotModel

Notes

  • Handles data with physical units and ensures dimensional consistency.

  • Supports optional background images for geometry-related plots.

  • Automatically determines y-axis limits if focus_x is specified.

Examples

>>> chart = Chart2D(
...     x="x_slicing_force_distribution/X",
...     y="x_slicing_force_distribution/totalCumulative_CD_Curve",
...     background="geometry"
... )
>>> plot_model = chart.get_data(cases, context)
>>> fig = plot_model.get_plot()
>>> fig.show()
get_doc_item(context, settings=None)#

Returns doc item for chart.

Parameters:
  • context (ReportContext)

  • settings (Settings | None)

Return type:

None

help(methods=False)#

Prints message describing the fields and methods of a Flow360BaseModel.

Parameters:

methods (bool = False) – Whether to also print out information about object’s methods.

Return type:

None

Example

>>> params.help(methods=True) 
to_file(filename, **kwargs)#

Exports Flow360BaseModel instance to .json or .yaml file

Parameters:

filename (str) – Full path to the .json or .yaml or file to save the Flow360BaseModel to.

Return type:

None

Example

>>> params.to_file(filename='folder/flow360.json')