pyplot Derived Type

type, public :: pyplot

Source Code


Components

TypeVisibility AttributesNameInitial
character(len=:), private, allocatable:: str
logical, private :: show_legend =.false.
logical, private :: use_numpy =.true.
logical, private :: mplot3d =.false.
logical, private :: polar =.false.
logical, private :: axis_equal =.false.
character(len=:), private, allocatable:: real_fmt

Type-Bound Procedures

procedure, public :: initialize

  • private subroutine initialize(me, grid, xlabel, ylabel, zlabel, title, legend, use_numpy, figsize, font_size, axes_labelsize, xtick_labelsize, ytick_labelsize, ztick_labelsize, legend_fontsize, mplot3d, axis_equal, polar, real_fmt)

    Author
    Jacob Williams

    Arguments

    Type IntentOptional AttributesName
    class(pyplot), intent(inout) :: me
    logical, intent(in), optional :: grid
    character(len=*), intent(in), optional :: xlabel
    character(len=*), intent(in), optional :: ylabel
    character(len=*), intent(in), optional :: zlabel
    character(len=*), intent(in), optional :: title
    logical, intent(in), optional :: legend
    logical, intent(in), optional :: use_numpy
    integer, intent(in), optional dimension(2):: figsize
    integer, intent(in), optional :: font_size
    integer, intent(in), optional :: axes_labelsize
    integer, intent(in), optional :: xtick_labelsize
    integer, intent(in), optional :: ytick_labelsize
    integer, intent(in), optional :: ztick_labelsize
    integer, intent(in), optional :: legend_fontsize
    logical, intent(in), optional :: mplot3d
    logical, intent(in), optional :: axis_equal
    logical, intent(in), optional :: polar
    character(len=*), intent(in), optional :: real_fmt

procedure, public :: add_plot

  • private subroutine add_plot(me, x, y, label, linestyle, markersize, linewidth, xlim, ylim, xscale, yscale)

    Author
    Jacob Williams

    Arguments

    Type IntentOptional AttributesName
    class(pyplot), intent(inout) :: me
    real(kind=wp), intent(in), dimension(:):: x
    real(kind=wp), intent(in), dimension(:):: y
    character(len=*), intent(in) :: label
    character(len=*), intent(in) :: linestyle
    integer, intent(in), optional :: markersize
    integer, intent(in), optional :: linewidth
    real(kind=wp), intent(in), optional dimension(2):: xlim
    real(kind=wp), intent(in), optional dimension(2):: ylim
    character(len=*), intent(in), optional :: xscale
    character(len=*), intent(in), optional :: yscale

procedure, public :: add_3d_plot

  • private subroutine add_3d_plot(me, x, y, z, label, linestyle, markersize, linewidth)

    Author
    Jacob Williams

    Arguments

    Type IntentOptional AttributesName
    class(pyplot), intent(inout) :: me
    real(kind=wp), intent(in), dimension(:):: x
    real(kind=wp), intent(in), dimension(:):: y
    real(kind=wp), intent(in), dimension(:):: z
    character(len=*), intent(in) :: label
    character(len=*), intent(in) :: linestyle
    integer, intent(in), optional :: markersize
    integer, intent(in), optional :: linewidth

procedure, public :: add_contour

  • private subroutine add_contour(me, x, y, z, label, linestyle, linewidth, levels, color, filled, cmap)

    Author
    Jacob Williams

    Arguments

    Type IntentOptional AttributesName
    class(pyplot), intent(inout) :: me
    real(kind=wp), intent(in), dimension(:):: x
    real(kind=wp), intent(in), dimension(:):: y
    real(kind=wp), intent(in), dimension(:,:):: z
    character(len=*), intent(in) :: label
    character(len=*), intent(in) :: linestyle
    integer, intent(in), optional :: linewidth
    real(kind=wp), intent(in), optional dimension(:):: levels
    character(len=*), intent(in), optional :: color
    logical, intent(in), optional :: filled
    character(len=*), intent(in), optional :: cmap

procedure, public :: add_bar

  • private subroutine add_bar(me, left, height, label, width, bottom, color, yerr, align, xlim, ylim, xscale, yscale)

    Author
    Jacob Williams

    Arguments

    Type IntentOptional AttributesName
    class(pyplot), intent(inout) :: me
    real(kind=wp), intent(in), dimension(:):: left
    real(kind=wp), intent(in), dimension(:):: height
    character(len=*), intent(in) :: label
    real(kind=wp), intent(in), optional dimension(:):: width
    real(kind=wp), intent(in), optional dimension(:):: bottom
    character(len=*), intent(in), optional :: color
    real(kind=wp), intent(in), optional dimension(:):: yerr
    character(len=*), intent(in), optional :: align
    real(kind=wp), intent(in), optional dimension(2):: xlim
    real(kind=wp), intent(in), optional dimension(2):: ylim
    character(len=*), intent(in), optional :: xscale
    character(len=*), intent(in), optional :: yscale

procedure, public :: savefig

  • private subroutine savefig(me, figfile, pyfile)

    Author
    Jacob Williams

    Arguments

    Type IntentOptional AttributesName
    class(pyplot), intent(inout) :: me
    character(len=*), intent(in) :: figfile
    character(len=*), intent(in), optional :: pyfile

procedure, public :: destroy

  • private subroutine destroy(me)

    Author
    Jacob Williams

    Arguments

    Type IntentOptional AttributesName
    class(pyplot), intent(inout) :: me

procedure, public :: execute

  • private subroutine execute(me, pyfile)

    Author
    Jacob Williams

    Arguments

    Type IntentOptional AttributesName
    class(pyplot), intent(inout) :: me
    character(len=*), intent(in), optional :: pyfile

procedure, public :: add_str

  • private subroutine add_str(me, str)

    Author
    Jacob Williams

    Arguments

    Type IntentOptional AttributesName
    class(pyplot), intent(inout) :: me
    character(len=*), intent(in) :: str

Source Code

    type, public :: pyplot

        !!  The main pyplot class.

        private

        character(len=:), allocatable :: str !! string buffer

        logical :: show_legend = .false.     !! show legend into plot
        logical :: use_numpy   = .true.      !! use numpy python module
        logical :: mplot3d     = .false.     !! it is a 3d plot
        logical :: polar       = .false.     !! it is a polar plot
        logical :: axis_equal  = .false.     !! equal scale on each axis

        character(len=:),allocatable :: real_fmt  !! real number formatting

    contains

        ! public methods
        procedure, public :: initialize    !! initialize pyplot instance

        procedure, public :: add_plot      !! add a 2d plot to pyplot instance
        procedure, public :: add_3d_plot   !! add a 3d plot to pyplot instance
        procedure, public :: add_contour   !! add a contour plot to pyplot instance
        procedure, public :: add_bar       !! add a barplot to pyplot instance

        procedure, public :: savefig       !! save plots of pyplot instance
        procedure, public :: destroy       !! destroy pyplot instance

        ! private methods
        procedure :: execute !! execute pyplot commands
        procedure :: add_str !! add string to pytplot instance buffer

    end type pyplot