ASCII terminal plotting backend
This module implements text-based plotting for terminal output using ASCII characters and Unicode box drawing characters. Provides basic line plotting with character density mapping for visualization.
Author: fortplot contributors
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | width | ||||
integer, | public | :: | height | ||||
real(kind=wp), | public | :: | x_min | ||||
real(kind=wp), | public | :: | x_max | ||||
real(kind=wp), | public | :: | y_min | ||||
real(kind=wp), | public | :: | y_max | ||||
logical, | public | :: | has_rendered_arrows | = | .false. | ||
logical, | public | :: | uses_vector_arrows | = | .false. | ||
logical, | public | :: | has_triangular_arrows | = | .false. | ||
character(len=1), | public, | allocatable | :: | canvas(:,:) | |||
character(len=:), | public, | allocatable | :: | title_text | |||
character(len=:), | public, | allocatable | :: | xlabel_text | |||
character(len=:), | public, | allocatable | :: | ylabel_text | |||
logical, | public | :: | title_set | = | .false. | ||
type(text_element_t), | public, | allocatable | :: | text_elements(:) | |||
integer, | public | :: | num_text_elements | = | 0 | ||
real(kind=wp), | public | :: | current_r | ||||
real(kind=wp), | public | :: | current_g | ||||
real(kind=wp), | public | :: | current_b | ||||
integer, | public | :: | plot_width | = | 80 | ||
integer, | public | :: | plot_height | = | 24 |
procedure, public :: line => ascii_draw_line | |
procedure, public :: color => ascii_set_color | |
procedure, public :: text => ascii_draw_text | |
procedure, public :: set_line_width => ascii_set_line_width | |
procedure, public :: set_line_style => ascii_set_line_style | |
procedure, public :: save => ascii_finalize | |
procedure, public :: set_title => ascii_set_title | |
procedure, public :: draw_marker => ascii_draw_marker | |
procedure, public :: set_marker_colors => ascii_set_marker_colors | |
procedure, public :: set_marker_colors_with_alpha => ascii_set_marker_colors_with_alpha | |
procedure, public :: fill_heatmap => ascii_fill_heatmap | |
procedure, public :: draw_arrow => ascii_draw_arrow | |
procedure, public :: get_ascii_output => ascii_get_output | New polymorphic methods to eliminate SELECT TYPE |
procedure, public :: get_width_scale => ascii_get_width_scale | |
procedure, public :: get_height_scale => ascii_get_height_scale | |
procedure, public :: fill_quad => ascii_fill_quad | |
procedure, public :: render_legend_specialized => ascii_render_legend_specialized | |
procedure, public :: calculate_legend_dimensions => ascii_calculate_legend_dimensions | |
procedure, public :: set_legend_border_width => ascii_set_legend_border_width | |
procedure, public :: calculate_legend_position_backend => ascii_calculate_legend_position | |
procedure, public :: extract_rgb_data => ascii_extract_rgb_data | |
procedure, public :: get_png_data_backend => ascii_get_png_data | |
procedure, public :: prepare_3d_data => ascii_prepare_3d_data | |
procedure, public :: render_ylabel => ascii_render_ylabel | |
procedure, public :: draw_axes_and_labels_backend => ascii_draw_axes_and_labels | |
procedure, public :: save_coordinates => ascii_save_coordinates | |
procedure, public :: set_coordinates => ascii_set_coordinates | |
procedure, public :: render_axes => ascii_render_axes |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in), | optional | :: | width | ||
integer, | intent(in), | optional | :: | height |