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)

    Unified scatter with RGB color; accepts s as scalar or array via deferred-shape s(..) so interface resolution works correctly regardless of whether s is scalar or rank-1.

    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)

    Unified scatter with string color; accepts s as scalar or array via deferred-shape s(..) so interface resolution works correctly regardless of whether s is scalar or rank-1.

    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)

    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)

    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)

    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)

    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