plot_data_t Derived Type

type, public :: plot_data_t

Data container for individual plots Separated from figure to follow Single Responsibility Principle


Components

Type Visibility Attributes Name Initial
integer, public :: plot_type = PLOT_TYPE_LINE
real(kind=wp), public, allocatable :: x(:)
real(kind=wp), public, allocatable :: y(:)
real(kind=wp), public, allocatable :: z(:)
real(kind=wp), public, allocatable :: x_grid(:)
real(kind=wp), public, allocatable :: y_grid(:)
real(kind=wp), public, allocatable :: z_grid(:,:)
real(kind=wp), public, allocatable :: contour_levels(:)
logical, public :: use_color_levels = .false.
logical, public :: fill_contours = .false.
character(len=20), public :: colormap = 'crest'
logical, public :: show_colorbar = .true.
logical, public :: surface_show_colorbar = .false.
real(kind=wp), public :: surface_alpha = 1.0_wp
real(kind=wp), public :: surface_linewidth = 1.0_wp
logical, public :: surface_use_colormap = .false.
real(kind=wp), public :: surface_edgecolor(3) = [0.0_wp, 0.447_wp, 0.698_wp]
character(len=:), public, allocatable :: surface_colormap
type(pcolormesh_t), public :: pcolormesh_data
real(kind=wp), public, allocatable :: bar_x(:)
real(kind=wp), public, allocatable :: bar_heights(:)
real(kind=wp), public :: bar_width = 0.8_wp
logical, public :: bar_horizontal = .false.
real(kind=wp), public, allocatable :: hist_bin_edges(:)
real(kind=wp), public, allocatable :: hist_counts(:)
logical, public :: hist_density = .false.
real(kind=wp), public, allocatable :: box_data(:)
real(kind=wp), public :: position = 1.0_wp
real(kind=wp), public :: width = 0.6_wp
logical, public :: show_outliers = .true.
logical, public :: horizontal = .false.
real(kind=wp), public :: q1
real(kind=wp), public :: q2
real(kind=wp), public :: q3
real(kind=wp), public :: whisker_low
real(kind=wp), public :: whisker_high
real(kind=wp), public, allocatable :: outliers(:)
real(kind=wp), public, allocatable :: xerr(:)
real(kind=wp), public, allocatable :: yerr(:)
real(kind=wp), public, allocatable :: xerr_lower(:)
real(kind=wp), public, allocatable :: xerr_upper(:)
real(kind=wp), public, allocatable :: yerr_lower(:)
real(kind=wp), public, allocatable :: yerr_upper(:)
real(kind=wp), public :: capsize = 5.0_wp
real(kind=wp), public :: elinewidth = 1.0_wp
real(kind=wp), public :: capthick = 1.0_wp
logical, public :: has_xerr = .false.
logical, public :: has_yerr = .false.
logical, public :: asymmetric_xerr = .false.
logical, public :: asymmetric_yerr = .false.
real(kind=wp), public, allocatable :: scatter_sizes(:)
real(kind=wp), public, allocatable :: scatter_colors(:)
real(kind=wp), public :: scatter_size_default = 20.0_wp
character(len=20), public :: scatter_colormap = 'viridis'
logical, public :: scatter_colorbar = .false.
real(kind=wp), public :: scatter_vmin = 0.0_wp
real(kind=wp), public :: scatter_vmax = 1.0_wp
logical, public :: scatter_vrange_set = .false.
real(kind=wp), public, dimension(3) :: color = [0.0_wp, 0.447_wp, 0.698_wp]
character(len=:), public, allocatable :: label
character(len=:), public, allocatable :: linestyle
character(len=:), public, allocatable :: marker
type(fill_between_data_t), public :: fill_between_data
real(kind=wp), public :: fill_alpha = 1.0_wp
integer, public :: pie_slice_count = 0
real(kind=wp), public, allocatable :: pie_start(:)
real(kind=wp), public, allocatable :: pie_end(:)
real(kind=wp), public, allocatable :: pie_offsets(:)
real(kind=wp), public, allocatable :: pie_colors(:,:)
real(kind=wp), public, allocatable :: pie_label_pos(:,:)
real(kind=wp), public, allocatable :: pie_values(:)
integer, public, allocatable :: pie_source_index(:)
character(len=:), public, allocatable :: pie_labels(:)
character(len=:), public, allocatable :: pie_autopct
real(kind=wp), public :: pie_radius = 1.0_wp
real(kind=wp), public :: pie_center(2) = [0.0_wp, 0.0_wp]
integer, public :: axis = AXIS_PRIMARY

Type-Bound Procedures

procedure, public :: is_3d

  • private function is_3d(self)

    Check if plot represents true 3D data A plot is 3D only when explicit 3D samples (x,y,z) are provided. Contour/pcolormesh (z_grid over x/y grid) are 2D renderings and must not trigger 3D axes.

    Arguments

    Type IntentOptional Attributes Name
    class(plot_data_t), intent(in) :: self

    Return Value logical