datetime_axis_demo.f90 Source File


Source Code

program datetime_axis_demo
    !! Demonstrate date/time axis support using datetime_t values.

    use, intrinsic :: iso_fortran_env, only: wp => real64
    use fortplot, only: figure_t, datetime_t
    use fortplot_errors, only: SUCCESS
    implicit none

    integer, parameter :: n = 10
    type(figure_t) :: fig
    type(datetime_t) :: times(n)
    real(wp) :: y(n)
    integer :: i, save_status
    logical :: all_success
    character(len=*), parameter :: out_dir = &
                                   'output/example/fortran/datetime_axis_demo/'

    do i = 1, n
        times(i)%year = 2025
        times(i)%month = 12
        times(i)%day = 20 + i
        times(i)%hour = 0
        times(i)%minute = 0
        times(i)%second = 0
        y(i) = 0.5_wp*real(i, wp)
    end do

    call fig%initialize(800, 600, backend='png')
    call fig%add_plot(times, y, label='measurements')
    call fig%set_xaxis_date_format('%Y-%m-%d')
    call fig%set_xlabel('Date')
    call fig%set_ylabel('Value')
    call fig%set_title('Datetime Axis Demo')
    call fig%legend()

    all_success = .true.
    call fig%savefig_with_status(out_dir//'datetime_axis_demo.png', save_status)
    if (save_status /= SUCCESS) all_success = .false.
    call fig%savefig_with_status(out_dir//'datetime_axis_demo.pdf', save_status)
    if (save_status /= SUCCESS) all_success = .false.

    if (all_success) then
        print *, 'Created: datetime_axis_demo.png/pdf'
    else
        print *, 'ERROR: Failed to create some datetime_axis_demo files'
        error stop 1
    end if
end program datetime_axis_demo