fortplot_svg Module

SVG backend main interface

Provides Scalable Vector Graphics output format alongside PNG, PDF, ASCII. SVG advantages: web-native, infinitely scalable, editable, CSS styling.



Derived Types

type, public, extends(plot_context) ::  svg_context

Components

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=:), public, allocatable :: content_stream
type(plot_margins_t), public :: margins
type(plot_area_t), public :: plot_area
real(kind=wp), public :: current_r = 0.0_wp
real(kind=wp), public :: current_g = 0.0_wp
real(kind=wp), public :: current_b = 0.0_wp
real(kind=wp), public :: current_line_width = 1.0_wp
character(len=32), public :: current_dash_pattern = ''
real(kind=wp), public :: marker_edge_r = 0.0_wp
real(kind=wp), public :: marker_edge_g = 0.0_wp
real(kind=wp), public :: marker_edge_b = 0.0_wp
real(kind=wp), public :: marker_face_r = 0.0_wp
real(kind=wp), public :: marker_face_g = 0.0_wp
real(kind=wp), public :: marker_face_b = 1.0_wp
real(kind=wp), public :: marker_edge_alpha = 1.0_wp
real(kind=wp), public :: marker_face_alpha = 1.0_wp

Type-Bound Procedures

procedure, public :: line => draw_svg_line
procedure, public :: color => set_svg_color
procedure, public :: text => draw_svg_text
procedure, public :: save => write_svg_file
procedure, public :: set_line_width => set_svg_line_width
procedure, public :: set_line_style => set_svg_line_style
procedure, public :: draw_marker => draw_svg_marker
procedure, public :: set_marker_colors => set_svg_marker_colors
procedure, public :: set_marker_colors_with_alpha => set_svg_marker_colors_alpha
procedure, public :: draw_arrow => draw_svg_arrow
procedure, public :: get_ascii_output => svg_get_ascii_output
procedure, public :: get_width_scale => svg_get_width_scale
procedure, public :: get_height_scale => svg_get_height_scale
procedure, public :: fill_quad => svg_fill_quad
procedure, public :: fill_heatmap => svg_fill_heatmap
procedure, public :: render_legend_specialized => svg_render_legend
procedure, public :: calculate_legend_dimensions => svg_calc_legend_dims
procedure, public :: set_legend_border_width => svg_set_legend_border
procedure, public :: calculate_legend_position_backend => svg_calc_legend_pos
procedure, public :: extract_rgb_data => svg_extract_rgb_data
procedure, public :: get_png_data_backend => svg_get_png_data
procedure, public :: prepare_3d_data => svg_prepare_3d_data
procedure, public :: render_ylabel => svg_render_ylabel
procedure, public :: draw_axes_and_labels_backend => svg_draw_axes_labels
procedure, public :: save_coordinates => svg_save_coordinates
procedure, public :: set_coordinates => svg_set_coordinates
procedure, public :: render_axes => svg_render_axes

Functions

public function create_svg_canvas(width, height) result(ctx)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: width
integer, intent(in) :: height

Return Value type(svg_context)