fortplot_matplotlib_scatter Module

Scatter plot wrappers (matplotlib-compatible).

Public API: generic interfaces scatter and add_scatter that accept either RGB-triple or named-color string arguments. Dispatches to the core scatter library through internal dispatch and utility modules.

Size arguments: s - primary parameter; scalar or per-point sizes in points^2. markersize - documented alias for s; used only when s is absent. When both are provided, s takes priority.

Color arguments: c - real array of scalar values mapped through cmap (colormap). Matches matplotlib's c parameter for data-driven coloring. color - literal RGB triple (or color name string) applied uniformly to all points. This is a fortplot extension; matplotlib uses c for both scalar mapping and literal color via kwargs. If both c and color are provided, c takes precedence for per-point coloring and color is ignored.



Interfaces

public interface scatter

  • private subroutine scatter_rgb(x, y, s, c, label, marker, markersize, color, linewidths, edgecolors, alpha, cmap, vmin, vmax, linewidths_scalar)

    Draw a scatter plot with an RGB color.

    Parameters x : real(wp), contiguous, intent(in) X coordinates. y : real(wp), contiguous, intent(in) Y coordinates. s : real(wp), optional Marker size or per-point marker sizes. c : real(wp), optional Per-point scalar values for colormap mapping. label : character(len=), optional Legend label. marker : character(len=), optional Marker style. markersize : real(wp), optional Alias for s when s is absent. color : real(wp)(3), optional Solid RGB color. linewidths : real(wp), optional Marker edge line widths. edgecolors : class(), optional Marker edge colors. alpha : real(wp), optional Marker transparency. cmap : character(len=), optional Colormap name. vmin : real(wp), optional Lower color limit. vmax : real(wp), optional Upper color limit. linewidths_scalar : real(wp), optional Scalar fallback for linewidths.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(in), contiguous :: x(:)
    real(kind=wp), intent(in), contiguous :: y(:)
    real(kind=wp), intent(in), optional :: s(..)
    real(kind=wp), intent(in), optional :: c(:)
    character(len=*), intent(in), optional :: label
    character(len=*), intent(in), optional :: marker
    real(kind=wp), intent(in), optional :: markersize
    real(kind=wp), intent(in), optional :: color(3)
    real(kind=wp), intent(in), optional :: linewidths(..)
    class(*), intent(in), optional :: edgecolors(..)
    real(kind=wp), intent(in), optional :: alpha
    character(len=*), intent(in), optional :: cmap
    real(kind=wp), intent(in), optional :: vmin
    real(kind=wp), intent(in), optional :: vmax
    real(kind=wp), intent(in), optional :: linewidths_scalar
  • private subroutine scatter_string(x, y, c, label, marker, markersize, color, linewidths, edgecolors, alpha, s, linewidths_scalar, cmap, vmin, vmax)

    Draw a scatter plot with a named color.

    Parameters x : real(wp), contiguous, intent(in) X coordinates. y : real(wp), contiguous, intent(in) Y coordinates. c : real(wp), optional Per-point scalar values for colormap mapping. label : character(len=), optional Legend label. marker : character(len=), optional Marker style. markersize : real(wp), optional Alias for s when s is absent. color : character(len=), intent(in) Named or hex color string. linewidths : real(wp), optional Marker edge line widths. edgecolors : class(), optional Marker edge colors. alpha : real(wp), optional Marker transparency. s : real(wp), optional Marker size or per-point marker sizes. linewidths_scalar : real(wp), optional Scalar fallback for linewidths. cmap : character(len=*), optional Colormap name. vmin : real(wp), optional Lower color limit. vmax : real(wp), optional Upper color limit.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(in), contiguous :: x(:)
    real(kind=wp), intent(in), contiguous :: y(:)
    real(kind=wp), intent(in), optional :: c(:)
    character(len=*), intent(in), optional :: label
    character(len=*), intent(in), optional :: marker
    real(kind=wp), intent(in), optional :: markersize
    character(len=*), intent(in) :: color
    real(kind=wp), intent(in), optional :: linewidths(..)
    class(*), intent(in), optional :: edgecolors(..)
    real(kind=wp), intent(in), optional :: alpha
    real(kind=wp), intent(in), optional :: s(..)
    real(kind=wp), intent(in), optional :: linewidths_scalar
    character(len=*), intent(in), optional :: cmap
    real(kind=wp), intent(in), optional :: vmin
    real(kind=wp), intent(in), optional :: vmax

public interface add_scatter

  • private subroutine add_scatter_2d_rgb(x, y, markersize, s, c, label, marker, color, linewidths, edgecolors, alpha, cmap, vmin, vmax, linewidths_scalar)

    Object-oriented alias for scatter_rgb in 2D.

    Parameters x : real(wp), contiguous, intent(in) X coordinates. y : real(wp), contiguous, intent(in) Y coordinates. markersize : real(wp), optional Alias for s when s is absent. s : real(wp), optional Marker size or per-point marker sizes. c : real(wp), optional Per-point scalar values for colormap mapping. label : character(len=), optional Legend label. marker : character(len=), optional Marker style. color : real(wp)(3), optional Solid RGB color. linewidths : real(wp), optional Marker edge line widths. edgecolors : class(), optional Marker edge colors. alpha : real(wp), optional Marker transparency. cmap : character(len=), optional Colormap name. vmin : real(wp), optional Lower color limit. vmax : real(wp), optional Upper color limit. linewidths_scalar : real(wp), optional Scalar fallback for linewidths.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(in), contiguous :: x(:)
    real(kind=wp), intent(in), contiguous :: y(:)
    real(kind=wp), intent(in), optional :: markersize
    real(kind=wp), intent(in), optional :: s(..)
    real(kind=wp), intent(in), optional :: c(:)
    character(len=*), intent(in), optional :: label
    character(len=*), intent(in), optional :: marker
    real(kind=wp), intent(in), optional :: color(3)
    real(kind=wp), intent(in), optional :: linewidths(..)
    class(*), intent(in), optional :: edgecolors(..)
    real(kind=wp), intent(in), optional :: alpha
    character(len=*), intent(in), optional :: cmap
    real(kind=wp), intent(in), optional :: vmin
    real(kind=wp), intent(in), optional :: vmax
    real(kind=wp), intent(in), optional :: linewidths_scalar
  • private subroutine add_scatter_2d_string(x, y, color, c, label, marker, markersize, linewidths, edgecolors, alpha, s, linewidths_scalar, cmap, vmin, vmax)

    Object-oriented alias for scatter_string in 2D.

    Parameters x : real(wp), contiguous, intent(in) X coordinates. y : real(wp), contiguous, intent(in) Y coordinates. color : character(len=), intent(in) Named or hex color string. c : real(wp), optional Per-point scalar values for colormap mapping. label : character(len=), optional Legend label. marker : character(len=), optional Marker style. markersize : real(wp), optional Alias for s when s is absent. linewidths : real(wp), optional Marker edge line widths. edgecolors : class(), optional Marker edge colors. alpha : real(wp), optional Marker transparency. s : real(wp), optional Marker size or per-point marker sizes. linewidths_scalar : real(wp), optional Scalar fallback for linewidths. cmap : character(len=*), optional Colormap name. vmin : real(wp), optional Lower color limit. vmax : real(wp), optional Upper color limit.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(in), contiguous :: x(:)
    real(kind=wp), intent(in), contiguous :: y(:)
    character(len=*), intent(in) :: color
    real(kind=wp), intent(in), optional :: c(:)
    character(len=*), intent(in), optional :: label
    character(len=*), intent(in), optional :: marker
    real(kind=wp), intent(in), optional :: markersize
    real(kind=wp), intent(in), optional :: linewidths(..)
    class(*), intent(in), optional :: edgecolors(..)
    real(kind=wp), intent(in), optional :: alpha
    real(kind=wp), intent(in), optional :: s(..)
    real(kind=wp), intent(in), optional :: linewidths_scalar
    character(len=*), intent(in), optional :: cmap
    real(kind=wp), intent(in), optional :: vmin
    real(kind=wp), intent(in), optional :: vmax
  • private subroutine add_scatter_3d_rgb(x, y, z, s, c, label, marker, markersize, color, linewidths, edgecolors, alpha, cmap, vmin, vmax, linewidths_scalar)

    Object-oriented alias for scatter_rgb in 3D.

    Parameters x : real(wp), contiguous, intent(in) X coordinates. y : real(wp), contiguous, intent(in) Y coordinates. z : real(wp), contiguous, intent(in) Z coordinates. s : real(wp), optional Marker size or per-point marker sizes. c : real(wp), optional Per-point scalar values for colormap mapping. label : character(len=), optional Legend label. marker : character(len=), optional Marker style. markersize : real(wp), optional Alias for s when s is absent. color : real(wp)(3), optional Solid RGB color. linewidths : real(wp), optional Marker edge line widths. edgecolors : class(), optional Marker edge colors. alpha : real(wp), optional Marker transparency. cmap : character(len=), optional Colormap name. vmin : real(wp), optional Lower color limit. vmax : real(wp), optional Upper color limit. linewidths_scalar : real(wp), optional Scalar fallback for linewidths.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(in), contiguous :: x(:)
    real(kind=wp), intent(in), contiguous :: y(:)
    real(kind=wp), intent(in), contiguous :: z(:)
    real(kind=wp), intent(in), optional :: s(..)
    real(kind=wp), intent(in), optional :: c(:)
    character(len=*), intent(in), optional :: label
    character(len=*), intent(in), optional :: marker
    real(kind=wp), intent(in), optional :: markersize
    real(kind=wp), intent(in), optional :: color(3)
    real(kind=wp), intent(in), optional :: linewidths(..)
    class(*), intent(in), optional :: edgecolors(..)
    real(kind=wp), intent(in), optional :: alpha
    character(len=*), intent(in), optional :: cmap
    real(kind=wp), intent(in), optional :: vmin
    real(kind=wp), intent(in), optional :: vmax
    real(kind=wp), intent(in), optional :: linewidths_scalar
  • private subroutine add_scatter_3d_string(x, y, z, color, s, c, label, marker, markersize, linewidths, edgecolors, alpha, linewidths_scalar, cmap, vmin, vmax)

    Object-oriented alias for scatter_string in 3D.

    Parameters x : real(wp), contiguous, intent(in) X coordinates. y : real(wp), contiguous, intent(in) Y coordinates. z : real(wp), contiguous, intent(in) Z coordinates. color : character(len=), intent(in) Named or hex color string. s : real(wp), optional Marker size or per-point marker sizes. c : real(wp), optional Per-point scalar values for colormap mapping. label : character(len=), optional Legend label. marker : character(len=), optional Marker style. markersize : real(wp), optional Alias for s when s is absent. linewidths : real(wp), optional Marker edge line widths. edgecolors : class(), optional Marker edge colors. alpha : real(wp), optional Marker transparency. cmap : character(len=*), optional Colormap name. vmin : real(wp), optional Lower color limit. vmax : real(wp), optional Upper color limit. linewidths_scalar : real(wp), optional Scalar fallback for linewidths.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(in), contiguous :: x(:)
    real(kind=wp), intent(in), contiguous :: y(:)
    real(kind=wp), intent(in), contiguous :: z(:)
    character(len=*), intent(in) :: color
    real(kind=wp), intent(in), optional :: s(..)
    real(kind=wp), intent(in), optional :: c(:)
    character(len=*), intent(in), optional :: label
    character(len=*), intent(in), optional :: marker
    real(kind=wp), intent(in), optional :: markersize
    real(kind=wp), intent(in), optional :: linewidths(..)
    class(*), intent(in), optional :: edgecolors(..)
    real(kind=wp), intent(in), optional :: alpha
    real(kind=wp), intent(in), optional :: linewidths_scalar
    character(len=*), intent(in), optional :: cmap
    real(kind=wp), intent(in), optional :: vmin
    real(kind=wp), intent(in), optional :: vmax