Fortran requires all procedure :: and generic :: type-bound procedure
interfaces to be declared in the same module as the type definition. The
~175 lines of type definition + ~642 lines of explicit interface blocks
cannot be split without a major architectural refactor (submodule interface
modules or facade pattern). Implementations are already split across the
submodules listed in the imports above. See issue #1925.
CORE TYPE DEFINITION
Main figure class implementing Facade Pattern for plotting operations
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(figure_state_t), | public | :: | state | ||||
| type(plot_data_t), | public, | allocatable | :: | plots(:) | |||
| type(plot_data_t), | public, | allocatable | :: | streamlines(:) | |||
| type(text_annotation_t), | public, | allocatable | :: | annotations(:) | |||
| integer, | public | :: | annotation_count | = | 0 | ||
| integer, | public | :: | max_annotations | = | 1000 | ||
| integer, | public | :: | subplot_rows | = | 0 | ||
| integer, | public | :: | subplot_cols | = | 0 | ||
| integer, | public | :: | current_subplot | = | 1 | ||
| type(subplot_data_t), | public, | allocatable | :: | subplots_array(:,:) | |||
| character(len=:), | public, | allocatable | :: | title | |||
| character(len=:), | public, | allocatable | :: | xlabel | |||
| character(len=:), | public, | allocatable | :: | ylabel | |||
| integer, | public | :: | plot_count | = | 0 |
| final :: destroy |
| procedure, public :: initialize | |
| procedure, public :: add_plot_real | |
| procedure, public :: add_plot_datetime | |
| generic, public :: add_plot => add_plot_real, add_plot_datetime | |
| generic, public :: plot => add_plot_real, add_plot_datetime | |
| procedure, public :: add_contour | |
| procedure, public :: add_contour_filled | |
| procedure, public :: add_contourf | |
| procedure, public :: add_surface | |
| procedure, public :: add_pcolormesh | |
| procedure, public :: streamplot | |
| procedure, public :: quiver | |
| procedure, public :: savefig | |
| procedure, public :: save => savefig | |
| procedure, public :: savefig_with_status | |
| procedure, public :: set_xlabel | |
| procedure, public :: set_ylabel | |
| procedure, public :: set_title | |
| procedure, public :: set_xscale | |
| procedure, public :: set_yscale | |
| procedure, public :: set_xaxis_date_format | |
| procedure, public :: set_yaxis_date_format | |
| procedure, public :: set_xlim | |
| procedure, public :: set_ylim | |
| procedure, public :: set_line_width | |
| procedure, public :: set_ydata | |
| procedure, public :: legend => figure_legend | |
| procedure, public :: colorbar | |
| procedure, public :: show | |
| procedure, public :: clear | |
| procedure, public :: clear_streamlines | |
| procedure, public :: grid | |
| procedure, public :: add_hist | |
| procedure, public :: hist => add_hist | |
| procedure, public :: boxplot | |
| procedure, public :: scatter | |
| procedure, public :: add_imshow | |
| procedure, public :: add_pie | |
| procedure, public :: add_polar | |
| procedure, public :: add_step | |
| procedure, public :: add_stem | |
| procedure, public :: add_fill | |
| procedure, public :: add_fill_between | |
| procedure, public :: twinx | |
| procedure, public :: twiny | |
| procedure, public :: use_axis | |
| procedure, public :: get_active_axis | |
| procedure, public :: subplots | |
| procedure, public :: suptitle | |
| procedure, public :: subplot_plot | |
| procedure, public :: subplot_plot_count | |
| procedure, public :: subplot_set_title | |
| procedure, public :: subplot_set_xlabel | |
| procedure, public :: subplot_set_ylabel | |
| procedure, public :: subplot_title | |
| procedure, public :: get_width | |
| procedure, public :: get_height | |
| procedure, public :: get_rendered | |
| procedure, public :: set_rendered | |
| procedure, public :: get_plot_count | |
| procedure, public :: get_plots | |
| procedure, public :: setup_png_backend_for_animation | |
| procedure, public :: extract_rgb_data_for_animation | |
| procedure, public :: extract_png_data_for_animation | |
| procedure, public :: backend_color | |
| procedure, public :: backend_line | |
| procedure, public :: backend_arrow | |
| procedure, public :: clear_backend_arrows | |
| procedure, public :: backend_associated | |
| procedure, public :: get_x_min | |
| procedure, public :: get_x_max | |
| procedure, public :: get_y_min | |
| procedure, public :: get_y_max | |
| procedure, public :: get_dpi | |
| procedure, public :: set_dpi | |
| procedure, public :: axhline | |
| procedure, public :: axvline | |
| procedure, public :: hlines | |
| procedure, public :: vlines | |
| procedure, public :: set_minor_ticks | |
| procedure, public :: set_minor_tick_count | |
| procedure, public :: minorticks_on | |
| procedure, public :: set_xticks | |
| procedure, public :: set_yticks | |
| procedure, public :: set_xtick_labels | |
| procedure, public :: set_ytick_labels | |
| generic, public :: set_aspect => set_aspect_str, set_aspect_num | |
| procedure, public :: tight_layout |