\documentclass[convert={density=900,outext=.png}]{standalone}
\usepackage[defaultfam,tabular,lining]{montserrat} %% Option 'defaultfam'
\usepackage{mathastext}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepgfplotslibrary{dateplot}
\usepgfplotslibrary{fillbetween}
\usetikzlibrary{backgrounds}
\usetikzlibrary{matrix}
\usetikzlibrary{calc}

\standaloneenv{page}


\def\colorDefault{white}

\def\colorMineur{yellow}
\def\colorAdulte{brown}
\def\colorSenior{lightgray}

\def\colorHomme{blue}
\def\colorFemme{red}
\def\colorQ{white}

\def\colorQPV{orange}

\def\colorBenevole{teal}


\pgfplotstableread[row sep=newline, col sep=comma, ignore chars={"}]{export-date.csv}\bydate

\pgfplotstableread[row sep=newline, col sep=comma, ignore chars={"}]{export-id.csv}\byid
\pgfplotsforeachungrouped  \colname in {present,homme,femme,soixante, dixhuit, qpv, benevole, salarie}{
    \pgfplotstablecreatecol[
        expr accum={
            round(\pgfmathaccuma) + \thisrow{\colname}
        }{0}
    ]{\colname-sum}{\byid}
    \pgfplotstablecreatecol[
        expr accum={
            round(\pgfmathaccuma) + (\thisrow{\colname} ? 1 : 0)
        }{0}
    ]{\colname-one}{\byid}
}
\pgfplotstablegetrowsof{\byid}
    \pgfmathsetmacro{\LastRow}{\pgfplotsretval-1}

\begin{document}
\begin{page}%
\begin{tikzpicture}[
    every axis/.style={
        clip=false,
        scale only axis,
        axis on top,
        height = 27.7cm,
        width = 3cm,
        axis on top,
        date coordinates in=y,
        date ZERO=2024-01-01,
        yticklabel=\empty,
        ytick distance=7,
        y dir=reverse,
        xmin = 0,
        xmax = 29,
        y tick style = {draw=none},
        ymin=2024-01-01,
        ymax=2024-12-31,
        xbar stacked,
        bar width=5,
        grid=major,
        set layers,
        axis line style={on layer=axis foreground},
        },
    ]
    \begin{axis}[name=plot1]
            \addplot [fill=\colorMineur, on layer= axis tick labels] table [y = date, x = dixhuit] {\bydate}; \label{plot:dixhuit}
            \addplot [fill=\colorAdulte, on layer= axis tick labels] table [y = date, x expr = {\thisrow{present} - \thisrow{dixhuit} - \thisrow{soixante}}] {\bydate}; \label{plot:adulte}
            \addplot [fill=\colorSenior, on layer= axis tick labels] table [y = date, x = soixante] {\bydate}; \label{plot:soixante}
            
            \fill[blue!10, on layer= axis background] (axis cs: 0 , 2024-01-01) rectangle (axis cs: \pgfkeysvalueof{/pgfplots/xmax} , 2024-03-21) ;
            \fill[green!30, on layer= axis background] (axis cs: 0 , 2024-03-21) rectangle (axis cs: \pgfkeysvalueof{/pgfplots/xmax} , 2024-06-21) ;
            \fill[yellow!30, on layer= axis background] (axis cs: 0 , 2024-06-21) rectangle (axis cs: \pgfkeysvalueof{/pgfplots/xmax} , 2024-09-21) ;
            \fill[orange!30, on layer= axis background] (axis cs: 0 , 2024-09-21) rectangle (axis cs: \pgfkeysvalueof{/pgfplots/xmax} , 2024-12-21) ;
            \fill[blue!10, on layer= axis background] (axis cs: 0 , 2024-12-21) rectangle (axis cs: \pgfkeysvalueof{/pgfplots/xmax} , 2024-12-31) ;
            
            \draw[xshift=-1pt,line width=2pt] (axis cs: 0 , 2024-01-01) -- node[below, midway, sloped] {janvier} (axis cs: 0 , 2024-02-01) ;
            \draw[draw=none]       (axis cs: 0 , 2024-02-01) -- node[below, midway, sloped] {février} (axis cs: 0 , 2024-03-01) ;
            \draw[xshift=-1pt,line width=2pt] (axis cs: 0 , 2024-03-01) -- node[below, midway, sloped] {mars} (axis cs: 0 , 2024-04-01) ;
            \draw[draw=none]       (axis cs: 0 , 2024-04-01) -- node[below, midway, sloped] {avril} (axis cs: 0 , 2024-05-01) ;
            \draw[xshift=-1pt,line width=2pt] (axis cs: 0 , 2024-05-01) -- node[below, midway, sloped] {mai} (axis cs: 0 , 2024-06-01) ;
            \draw[draw=none]       (axis cs: 0 , 2024-06-01) -- node[below, midway, sloped] {juin} (axis cs: 0 , 2024-07-01) ;
            \draw[xshift=-1pt,line width=2pt] (axis cs: 0 , 2024-07-01) -- node[below, midway, sloped] {juillet} (axis cs: 0 , 2024-08-01) ;
            \draw[draw=none]       (axis cs: 0 , 2024-08-01) -- node[below, midway, sloped] {août} (axis cs: 0 , 2024-09-01) ;
            \draw[xshift=-1pt,line width=2pt] (axis cs: 0 , 2024-09-01) -- node[below, midway, sloped] {septembre} (axis cs: 0 , 2024-10-01) ;
            \draw[draw=none]       (axis cs: 0 , 2024-10-01) -- node[below, midway, sloped] {octobre} (axis cs: 0 , 2024-11-01) ;
            \draw[xshift=-1pt,line width=2pt] (axis cs: 0 , 2024-11-01) -- node[below, midway, sloped] {novembre} (axis cs: 0 , 2024-12-01) ;
            \draw[draw=none]       (axis cs: 0 , 2024-12-01) -- node[below, midway, sloped] {décembre} (axis cs: 0 , 2024-12-31) ;
    \end{axis}%
    \begin{axis}[
        name=plot2,
        at={($(plot1.east)$)},
        anchor=west,
        xlabel=Nombre de participants aux ateliers,
        xlabel style = {yshift=1ex},
        ]
            \addplot [fill=\colorHomme, on layer= axis tick labels] table [y = date, x = homme] {\bydate}; \label{plot:homme}
            \addplot [fill=\colorQ, on layer= axis tick labels] table [y = date, x expr = {\thisrow{present} - \thisrow{femme} - \thisrow{homme}}] {\bydate}; \label{plot:q}
            \addplot [fill=\colorFemme, on layer= axis tick labels] table [y = date, x = femme] {\bydate}; \label{plot:femme}
            
            \fill[blue!05, on layer= axis background] (axis cs: 0 , 2024-01-01) rectangle (axis cs: \pgfkeysvalueof{/pgfplots/xmax} , 2024-03-21) ;
            \fill[green!15, on layer= axis background] (axis cs: 0 , 2024-03-21) rectangle (axis cs: \pgfkeysvalueof{/pgfplots/xmax} , 2024-06-21) ;
            \fill[yellow!15, on layer= axis background] (axis cs: 0 , 2024-06-21) rectangle (axis cs: \pgfkeysvalueof{/pgfplots/xmax} , 2024-09-21) ;
            \fill[orange!15, on layer= axis background] (axis cs: 0 , 2024-09-21) rectangle (axis cs: \pgfkeysvalueof{/pgfplots/xmax} , 2024-12-21) ;
            \fill[blue!05, on layer= axis background] (axis cs: 0 , 2024-12-21) rectangle (axis cs: \pgfkeysvalueof{/pgfplots/xmax} , 2024-12-31) ;
    \end{axis}%
    \begin{axis}[
        name=plot3,
        at={($(plot2.east)$)},
        anchor=west,
        ]
            \addplot [fill=\colorBenevole, on layer= axis tick labels] table [y = date, x expr = {\thisrow{benevole} + \thisrow{salarie}}] {\bydate}; \label{plot:benevole}
             \addplot [fill=\colorDefault, on layer= axis tick labels] table [y = date, x expr = {\thisrow{present} - \thisrow{benevole} - \thisrow{salarie}}] {\bydate}; 
            \addplot [fill=\colorQPV, on layer= axis descriptions, stack dir=minus,] table [y = date, x = qpv] {\bydate}; \label{plot:qpv}
            
            
            \fill[blue!10, on layer= axis background] (axis cs: 0 , 2024-01-01) rectangle (axis cs: \pgfkeysvalueof{/pgfplots/xmax} , 2024-03-21) ;
            \fill[green!30, on layer= axis background] (axis cs: 0 , 2024-03-21) rectangle (axis cs: \pgfkeysvalueof{/pgfplots/xmax} , 2024-06-21) ;
            \fill[yellow!30, on layer= axis background] (axis cs: 0 , 2024-06-21) rectangle (axis cs: \pgfkeysvalueof{/pgfplots/xmax} , 2024-09-21) ;
            \fill[orange!30, on layer= axis background] (axis cs: 0 , 2024-09-21) rectangle (axis cs: \pgfkeysvalueof{/pgfplots/xmax} , 2024-12-21) ;
            \fill[blue!10, on layer= axis background] (axis cs: 0 , 2024-12-21) rectangle (axis cs: \pgfkeysvalueof{/pgfplots/xmax} , 2024-12-31) ;
    \end{axis}%
\end{tikzpicture}%
\end{page}
\begin{page}%
    \begin{tikzpicture}%
       \matrix [
            draw,
            matrix of nodes,
            node font=\small,
        ] at (0,0) {
            \textbf{Âge}                  & & \hspace{1cm} & \textbf{Genre}          & & \hspace{1cm} & \textbf{Participants}                & \\
            -18 ans   & \ref{plot:dixhuit}  & \hspace{1cm} & Homme  & \ref{plot:homme} & \hspace{1cm} & Encadrants       & \ref{plot:benevole} \\
            18-59 ans & \ref{plot:adulte}   & \hspace{1cm} & Femme  & \ref{plot:femme} & \hspace{1cm} &  Habitant        &                     \\
            +60 ans   & \ref{plot:soixante} & \hspace{1cm} &        &                  & \hspace{1cm} &  d'un QPV        & \ref{plot:qpv}      \\
        };%
    \end{tikzpicture}%
\end{page}
\pgfplotsset{
  compat=1.14,% <- current version is 1.14
}
\begin{page}%
    \begin{tikzpicture}%
        \pgfplotstablegetelem{\LastRow}{present-sum}\of{\byid}%
            \pgfmathsetmacro{\sumpresent}{\pgfplotsretval}%
        \begin{axis}[
            width=10cm,
            height=3cm,
            scale only axis,
            xbar stacked, nodes near coords,
            nodes near coords style={/pgf/number format/.cd,fixed},
            hide x axis,
            hide y axis,
            xmin=0,
            xmax=\sumpresent,
            ymin=0.5,
            ymax=3.5,
            y dir=reverse,
            bar width=0.8cm,
            title = {\pgfmathprintnumber{\sumpresent} participations au total},
        ]
\pgfplotstablegetelem{\LastRow}{dixhuit-sum}\of{\byid}
                \pgfmathsetmacro{\sumdixhuit}{\pgfplotsretval}
            \pgfplotstablegetelem{\LastRow}{soixante-sum}\of{\byid}
                \pgfmathsetmacro{\sumsoixante}{\pgfplotsretval}
            
            \addplot[fill=\colorMineur] coordinates {(\sumdixhuit, 1)};
            \addplot[fill=\colorAdulte] coordinates {(\sumpresent - \sumdixhuit - \sumsoixante, 1)}; 
            \addplot[fill=\colorSenior] coordinates {(\sumsoixante, 1)};
            
            \addplot[draw=none, point meta=explicit symbolic, stack dir=minus] coordinates {(\sumpresent, 1)};
            
            \pgfplotstablegetelem{\LastRow}{homme-sum}\of{\byid}
                \pgfmathsetmacro{\sumhomme}{\pgfplotsretval}
            \pgfplotstablegetelem{\LastRow}{femme-sum}\of{\byid}
                \pgfmathsetmacro{\sumfemme}{\pgfplotsretval}
                
            \addplot[fill=\colorHomme] coordinates {(\sumhomme, 2)};
            \addplot[fill=\colorQ, point meta=explicit symbolic] coordinates {(\sumpresent - \sumfemme - \sumhomme, 2)}; 
            \addplot[fill=\colorFemme] coordinates {(\sumfemme, 2)};
            
            \addplot[draw=none, point meta=explicit symbolic, stack dir=minus] coordinates {(\sumpresent, 2)};
            
            \pgfplotstablegetelem{\LastRow}{benevole-sum}\of{\byid}
                \pgfmathsetmacro{\sumbenevole}{\pgfplotsretval}
            \pgfplotstablegetelem{\LastRow}{qpv-sum}\of{\byid}
                \pgfmathsetmacro{\sumqpv}{\pgfplotsretval}
            
            \addplot[fill=\colorBenevole] coordinates {(\sumbenevole, 3)};
            \addplot[fill=\colorDefault, point meta=explicit symbolic] coordinates {(\sumpresent - \sumbenevole - \sumqpv, 3)}; 
            \addplot[fill=\colorQPV] coordinates {(\sumqpv, 3)};
            
        \end{axis}
    \end{tikzpicture}%
\end{page}
\begin{page}%
    \begin{tikzpicture}%
        \pgfplotstablegetelem{\LastRow}{present-one}\of{\byid}%
            \pgfmathsetmacro{\onepresent}{\pgfplotsretval}%
        \begin{axis}[
            width=10cm,
            height=3cm,
            scale only axis,
            xbar stacked, nodes near coords,
            nodes near coords style={/pgf/number format/.cd,fixed},
            hide x axis,
            hide y axis,
            xmin=0,
            xmax=\onepresent,
            ymin=0.5,
            ymax=3.5,
            y dir=reverse,
            bar width=0.8cm,
            title = {\pgfmathprintnumber{\onepresent} participants uniques},
        ]
            \pgfplotstablegetelem{\LastRow}{dixhuit-one}\of{\byid}
                \pgfmathsetmacro{\onedixhuit}{\pgfplotsretval}
            \pgfplotstablegetelem{\LastRow}{soixante-one}\of{\byid}
                \pgfmathsetmacro{\onesoixante}{\pgfplotsretval}
            
            \addplot[fill=\colorMineur] coordinates {(\onedixhuit, 1)};
            \addplot[fill=\colorAdulte] coordinates {(\onepresent - \onedixhuit - \onesoixante, 1)}; 
            \addplot[fill=\colorSenior] coordinates {(\onesoixante, 1)};
            
            \addplot[draw=none, point meta=explicit symbolic, stack dir=minus] coordinates {(\onepresent, 1)};
            
            \pgfplotstablegetelem{\LastRow}{homme-one}\of{\byid}
                \pgfmathsetmacro{\onehomme}{\pgfplotsretval}
            \pgfplotstablegetelem{\LastRow}{femme-one}\of{\byid}
                \pgfmathsetmacro{\onefemme}{\pgfplotsretval}
                
            \addplot[fill=\colorHomme] coordinates {(\onehomme, 2)};
            \addplot[fill=\colorQ, point meta=explicit symbolic] coordinates {(\onepresent - \onefemme - \onehomme, 2)}; 
            \addplot[fill=\colorFemme] coordinates {(\onefemme, 2)};
            
            \addplot[draw=none, point meta=explicit symbolic, stack dir=minus] coordinates {(\onepresent, 2)};
            
            \pgfplotstablegetelem{\LastRow}{benevole-one}\of{\byid}
                \pgfmathsetmacro{\onebenevole}{\pgfplotsretval}
            \pgfplotstablegetelem{\LastRow}{qpv-one}\of{\byid}
                \pgfmathsetmacro{\oneqpv}{\pgfplotsretval}
            
            \addplot[fill=\colorBenevole] coordinates {(\onebenevole, 3)};
            \addplot[fill=\colorDefault, point meta=explicit symbolic] coordinates {(\onepresent - \onebenevole - \oneqpv, 3)}; 
            \addplot[fill=\colorQPV] coordinates {(\oneqpv, 3)};
            
        \end{axis}
    \end{tikzpicture}%
\end{page}
\end{document}

