This example shows how you can modify a colormap with methods like shift(), in concrete cases. In the Scientific colour maps collection, all cyclic colormaps have their bright part in the middle. But we can shift the dark part towards the center. In the Scientific colour maps collection, all categorical colormaps begin with a dark colour, but a shift can be applied to begin with a brighter colour. Two levels towards left Starting from a diverging colormap, we can obtain what could be called a diverging multi-sequential colormap.
Type | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|
type(Colormap) | :: | cmap |
program modify use forcolormap, only: Colormap, wp implicit none type(Colormap) :: cmap !> In the Scientific colour maps collection, all cyclic colormaps have their !> bright part in the middle. But we can shift the dark part towards the !> center. call cmap%set("bamO", 0.0_wp, 2.0_wp) call cmap%colorbar("bamO") call cmap%shift(cmap%get_levels() / 2) call cmap%colorbar("bamO_shifted") print *, "See the bamO.ppm and bamO_shifted.ppm colorbars" !> In the Scientific colour maps collection, all categorical colormaps !> begin with a dark colour, but a shift can be applied to begin with a !> brighter colour. call cmap%set("actonS", 0.0_wp, 2.0_wp) call cmap%colorbar("actonS") call cmap%shift(+2) !! Two levels towards left call cmap%colorbar("actonS_shifted") print *, "See the actonS.ppm and actonS_shifted.ppm colorbars" !> Starting from a diverging colormap, we can obtain what could be called !> a diverging multi-sequential colormap. call cmap%set("bam", 0.0_wp, 2.0_wp) call cmap%colorbar("bam") call cmap%shift(cmap%get_levels() / 2) call cmap%colorbar("bam_shifted") print *, "See the bam.ppm and bam_shifted.ppm colorbars" end program modify