Raster axes coordination module (refactored for size compliance) Orchestrates tick and label rendering through specialized modules
Map a data value to pixel X coordinate using axis scale
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | value | |||
| real(kind=wp), | intent(in) | :: | data_min | |||
| real(kind=wp), | intent(in) | :: | data_max | |||
| type(plot_area_t), | intent(in) | :: | plot_area | |||
| character(len=*), | intent(in) | :: | scale | |||
| real(kind=wp), | intent(in) | :: | symlog_threshold |
Map a data value to pixel Y coordinate using axis scale Raster coordinates have Y increasing downward; account for that here.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | value | |||
| real(kind=wp), | intent(in) | :: | data_min | |||
| real(kind=wp), | intent(in) | :: | data_max | |||
| type(plot_area_t), | intent(in) | :: | plot_area | |||
| character(len=*), | intent(in) | :: | scale | |||
| real(kind=wp), | intent(in) | :: | symlog_threshold |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | y_tick_label_edge | |||
| integer, | intent(in) | :: | rotated_width | |||
| type(plot_area_t), | intent(in) | :: | plot_area |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(plot_area_t), | intent(in) | :: | plot_area | |||
| integer, | intent(in) | :: | rotated_width | |||
| integer, | intent(in) | :: | y_tick_max_width |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(plot_area_t), | intent(in) | :: | plot_area | |||
| integer, | intent(in) | :: | max_width_measured |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(plot_area_t), | intent(in) | :: | plot_area |
Draw axes and labels for raster backends
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(raster_image_t), | intent(inout) | :: | raster | |||
| integer, | intent(in) | :: | width | |||
| integer, | intent(in) | :: | height | |||
| type(plot_area_t), | intent(in) | :: | plot_area | |||
| character(len=*), | intent(in) | :: | xscale | |||
| character(len=*), | intent(in) | :: | yscale | |||
| real(kind=wp), | intent(in) | :: | symlog_threshold | |||
| real(kind=wp), | intent(in) | :: | x_min | |||
| real(kind=wp), | intent(in) | :: | x_max | |||
| real(kind=wp), | intent(in) | :: | y_min | |||
| real(kind=wp), | intent(in) | :: | y_max | |||
| character(len=:), | intent(in), | optional, | allocatable | :: | title | |
| character(len=:), | intent(in), | optional, | allocatable | :: | xlabel | |
| character(len=:), | intent(in), | optional, | allocatable | :: | ylabel | |
| character(len=*), | intent(in), | optional | :: | x_date_format | ||
| character(len=*), | intent(in), | optional | :: | y_date_format |
Draw axes lines and tick marks WITHOUT labels (for proper drawing order)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(raster_image_t), | intent(inout) | :: | raster | |||
| integer, | intent(in) | :: | width | |||
| integer, | intent(in) | :: | height | |||
| type(plot_area_t), | intent(in) | :: | plot_area | |||
| character(len=*), | intent(in) | :: | xscale | |||
| character(len=*), | intent(in) | :: | yscale | |||
| real(kind=wp), | intent(in) | :: | symlog_threshold | |||
| real(kind=wp), | intent(in) | :: | x_min | |||
| real(kind=wp), | intent(in) | :: | x_max | |||
| real(kind=wp), | intent(in) | :: | y_min | |||
| real(kind=wp), | intent(in) | :: | y_max |
Draw ONLY axis labels and tick labels (for proper drawing order)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(raster_image_t), | intent(inout) | :: | raster | |||
| integer, | intent(in) | :: | width | |||
| integer, | intent(in) | :: | height | |||
| type(plot_area_t), | intent(in) | :: | plot_area | |||
| character(len=*), | intent(in) | :: | xscale | |||
| character(len=*), | intent(in) | :: | yscale | |||
| real(kind=wp), | intent(in) | :: | symlog_threshold | |||
| real(kind=wp), | intent(in) | :: | x_min | |||
| real(kind=wp), | intent(in) | :: | x_max | |||
| real(kind=wp), | intent(in) | :: | y_min | |||
| real(kind=wp), | intent(in) | :: | y_max | |||
| character(len=:), | intent(in), | optional, | allocatable | :: | title | |
| character(len=:), | intent(in), | optional, | allocatable | :: | xlabel | |
| character(len=:), | intent(in), | optional, | allocatable | :: | ylabel | |
| real(kind=wp), | intent(in), | optional | :: | custom_xticks(:) | ||
| character(len=*), | intent(in), | optional | :: | custom_xtick_labels(:) | ||
| real(kind=wp), | intent(in), | optional | :: | custom_yticks(:) | ||
| character(len=*), | intent(in), | optional | :: | custom_ytick_labels(:) | ||
| character(len=*), | intent(in), | optional | :: | x_date_format | ||
| character(len=*), | intent(in), | optional | :: | y_date_format |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(raster_image_t), | intent(inout) | :: | raster | |||
| integer, | intent(in) | :: | width | |||
| integer, | intent(in) | :: | height | |||
| type(plot_area_t), | intent(in) | :: | plot_area | |||
| character(len=*), | intent(in) | :: | yscale | |||
| real(kind=wp), | intent(in) | :: | symlog_threshold | |||
| real(kind=wp), | intent(in) | :: | y_min | |||
| real(kind=wp), | intent(in) | :: | y_max | |||
| character(len=:), | intent(in), | optional, | allocatable | :: | ylabel | |
| character(len=*), | intent(in), | optional | :: | date_format |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(raster_image_t), | intent(inout) | :: | raster | |||
| integer, | intent(in) | :: | width | |||
| integer, | intent(in) | :: | height | |||
| type(plot_area_t), | intent(in) | :: | plot_area | |||
| character(len=*), | intent(in) | :: | xscale | |||
| real(kind=wp), | intent(in) | :: | symlog_threshold | |||
| real(kind=wp), | intent(in) | :: | x_min | |||
| real(kind=wp), | intent(in) | :: | x_max | |||
| character(len=:), | intent(in), | optional, | allocatable | :: | xlabel | |
| character(len=*), | intent(in), | optional | :: | date_format |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | centers(:) | |||
| integer, | intent(in) | :: | widths(:) | |||
| real(kind=wp), | intent(in) | :: | min_gap | |||
| logical, | intent(out) | :: | keep(size(centers)) |