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 | 
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 | 
| 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 | 
| 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 | 
| 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)) |