diff --git a/DESCRIPTION b/DESCRIPTION
index e6202da82f58a6de9ff22851e7dca3240638b2be..5bc568d6ba58a67ce3ddb1888dde75a2051a4aee 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -25,6 +25,7 @@ Imports:
     forcats,
     ggiraph,
     ggplot2,
+    ggtext,
     glue,
     gouvdown (>= 0.0.0.9000),
     lubridate,
diff --git a/NAMESPACE b/NAMESPACE
index 059c749a6b0d30d0c925c4b4b1bc1825dec9d90e..919ae8f0708e4588ff51c7e136d2471fc8645db0 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -3,9 +3,11 @@
 export("%>%")
 export(creer_graphe_1_1)
 export(creer_graphe_1_3)
+export(creer_graphe_1_4)
 export(format_fr_pct)
 importFrom(attempt,stop_if_not)
 importFrom(dplyr,arrange)
+importFrom(dplyr,case_when)
 importFrom(dplyr,desc)
 importFrom(dplyr,filter)
 importFrom(dplyr,first)
@@ -20,6 +22,7 @@ importFrom(forcats,fct_reorder)
 importFrom(ggiraph,geom_point_interactive)
 importFrom(ggiraph,ggiraph)
 importFrom(ggplot2,aes)
+importFrom(ggplot2,coord_flip)
 importFrom(ggplot2,element_text)
 importFrom(ggplot2,geom_bar)
 importFrom(ggplot2,geom_col)
@@ -27,8 +30,10 @@ importFrom(ggplot2,geom_text)
 importFrom(ggplot2,ggplot)
 importFrom(ggplot2,labs)
 importFrom(ggplot2,scale_fill_manual)
+importFrom(ggplot2,scale_x_discrete)
 importFrom(ggplot2,scale_y_continuous)
 importFrom(ggplot2,theme)
+importFrom(ggtext,element_markdown)
 importFrom(glue,glue)
 importFrom(lubridate,make_date)
 importFrom(magrittr,"%>%")
diff --git a/R/creer_graphe_1_4.R b/R/creer_graphe_1_4.R
new file mode 100644
index 0000000000000000000000000000000000000000..3e318dc95b0847d02bc16f050647505441f73a7a
--- /dev/null
+++ b/R/creer_graphe_1_4.R
@@ -0,0 +1,73 @@
+#' Creation du graphique en barres surfaces artificialisees en volume (Teruti-Lucas)
+#' @description Graphique en barres surfaces artificialisees en volume (Teruti-Lucas)
+#'
+#' @param millesime_teruti une année parmi les millesimes sélectionnables par l'utilisateur, au format numerique.
+#'
+#' @return Un diagramme en barres
+#'
+#' @importFrom dplyr filter select mutate group_by desc arrange case_when
+#' @importFrom forcats fct_inorder fct_drop
+#' @importFrom ggplot2 ggplot aes scale_y_continuous theme geom_text geom_col scale_fill_manual scale_x_discrete coord_flip
+#' @importFrom glue glue
+#' @importFrom lubridate make_date
+#' @importFrom tidyr spread gather
+#' @importFrom tricky set_standard_names
+#' @importFrom ggtext element_markdown
+#'
+#' @export
+#'
+#' @examples
+#' creer_graphe_1_4(millesime_teruti=2018)
+
+creer_graphe_1_4 <- function(millesime_teruti){
+
+  # Creation de la table utile a la production du graphique
+  data <- teruti %>%
+    dplyr::mutate(valeur=as.numeric(.data$valeur)) %>%
+    # dplyr::filter(.data$CodeZone == "52" & .data$TypeZone == "R\u00e9gions" | .data$CodeZone %in% c("44","49","53","72","85") & .data$TypeZone == "D\u00e9partements",
+    #               .data$date == lubridate::make_date(millesime_teruti,"01","01")) %>%
+    dplyr::filter(.data$CodeZone %in% c("44","49","53","72","85") & .data$TypeZone == "D\u00e9partements",
+                  .data$date == lubridate::make_date(millesime_teruti,"01","01")) %>%
+    tidyr::spread(key=.data$variable,value=.data$valeur,fill=0) %>%
+    tricky::set_standard_names() %>%
+    dplyr::arrange(.data$typezone) %>%
+    dplyr::mutate(zone = forcats::fct_drop(.data$zone) %>% forcats::fct_inorder(),
+                  voiries=.data$sols_revetus,
+                  hors_voiries=(.data$sols_batis+ .data$sols_stabilises+ .data$autres_sols_artificialises )
+    ) %>%
+    dplyr::select(.data$typezone,.data$codezone,.data$zone,.data$voiries,.data$hors_voiries)%>%
+    tidyr::gather(variable,valeur,.data$voiries:.data$hors_voiries)%>%
+    dplyr::mutate(variable = replace(.data$variable, .data$variable=="hors_voiries","surfaces artificialis\u00e9es hors voiries"),
+                  codezone = replace(.data$codezone, .data$codezone=="52","R\u00e9gion"))%>%
+    dplyr::mutate(variable=factor(.data$variable,levels=c("surfaces artificialis\u00e9es hors voiries","voiries"))%>% forcats::fct_inorder()) %>%
+    dplyr::group_by(.data$typezone,.data$codezone,.data$zone) %>%
+    dplyr::arrange(.data$codezone, dplyr::desc(.data$variable))%>%
+    # dplyr::mutate_at(.funs = list(prec = lag),
+    #           .vars = dplyr::vars(.data$valeur)) %>%
+    # dplyr::mutate(position = dplyr::case_when(
+    #   .data$prec < 40000 ~ cumsum(.data$valeur)+8000,
+    #   .data$typezone == "Départements" & .data$variable == "voiries" ~ cumsum(.data$valeur),
+    #   TRUE ~ cumsum(.data$valeur) - 0.5 * .data$valeur
+    # ))
+    dplyr::mutate(position = cumsum(.data$valeur) - 0.5 * .data$valeur)
+
+  graph_1_4<-data  %>%
+    ggplot2::ggplot(ggplot2::aes(x=.data$zone,y=.data$valeur)) +
+    ggplot2::geom_col(ggplot2::aes(fill = .data$variable), width = 0.9)+
+    ggplot2::geom_text(ggplot2::aes(y = .data$position, label = round(.data$valeur,0), group =.data$variable), color = "white", size=3)+
+    ggplot2::labs(title= glue::glue("Surfaces artificialis\u00e9es en hectares (Teruti-Lucas)"),
+                  subtitle="<span style = 'color:#D08A77'> Hors voiries</span> et <span style = 'color:#B07F73'> en voiries</span>",
+                  x="",
+                  y="",
+                  fill="",
+                  caption = glue::glue("Source : Teruti-Lucas {millesime_teruti}"))+
+    ggplot2::theme(legend.position = "none",
+                   plot.subtitle = ggtext::element_markdown(size = 12, lineheight = 1.2))+
+    ggplot2::scale_y_continuous(labels = scales::number_format(suffix = "", accuracy = 1)) +
+    ggplot2::coord_flip() +
+    ggplot2::scale_x_discrete(limits=rev) +
+    ggplot2::scale_fill_manual(values = gouvdown::gouv_palettes[["pal_gouv_i"]][1:2])
+
+  return(graph_1_4)
+
+}
diff --git a/devstuff_history.R b/devstuff_history.R
index 9f9d5d215437a3b17c78ef45b8c5e7e779075b10..d648d37b3fe235f29c1ce87bd9d7c350f2e9c8a1 100644
--- a/devstuff_history.R
+++ b/devstuff_history.R
@@ -36,7 +36,10 @@ usethis::use_vignette("ac-ch1-3","ac- Chapitre 1 Graphe 3")
 usethis::use_r("creer_graphe_1_3")
 usethis::use_test("creer_graphe_1_3")
 
-
+##creer_graphe_1_4
+usethis::use_vignette("ac-ch1-4","ac- Chapitre 1 Graphe 4")
+usethis::use_r("creer_graphe_1_4")
+usethis::use_test("creer_graphe_1_4")
 
 ## A faire tourner avant chaque commit
 # usethis::use_r("globals.R") # liste les objets à passer en variables globales
diff --git a/inst/rmarkdown/templates/publication/skeleton/skeleton.Rmd b/inst/rmarkdown/templates/publication/skeleton/skeleton.Rmd
index e383d763d0449a85666e168c81e5f1b24b0a0c63..f48f5a119e4090b98daba1979b1505f7483159a4 100644
--- a/inst/rmarkdown/templates/publication/skeleton/skeleton.Rmd
+++ b/inst/rmarkdown/templates/publication/skeleton/skeleton.Rmd
@@ -37,3 +37,10 @@ creer_graphe_1_3( params$millesime_teruti)
 ```
 
 texte...
+
+```{r graph surfaces artificialisees en volume}
+creer_graphe_1_4( params$millesime_teruti)
+```
+
+
+
diff --git a/man/creer_graphe_1_4.Rd b/man/creer_graphe_1_4.Rd
new file mode 100644
index 0000000000000000000000000000000000000000..ec29515ccb58aa4f63ca5ee669a80114243df8cb
--- /dev/null
+++ b/man/creer_graphe_1_4.Rd
@@ -0,0 +1,20 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/creer_graphe_1_4.R
+\name{creer_graphe_1_4}
+\alias{creer_graphe_1_4}
+\title{Creation du graphique en barres surfaces artificialisees en volume (Teruti-Lucas)}
+\usage{
+creer_graphe_1_4(millesime_teruti)
+}
+\arguments{
+\item{millesime_teruti}{une année parmi les millesimes sélectionnables par l'utilisateur, au format numerique.}
+}
+\value{
+Un diagramme en barres
+}
+\description{
+Graphique en barres surfaces artificialisees en volume (Teruti-Lucas)
+}
+\examples{
+creer_graphe_1_4(millesime_teruti=2018)
+}
diff --git a/tests/testthat/test-creer_graphe_1_4.R b/tests/testthat/test-creer_graphe_1_4.R
new file mode 100644
index 0000000000000000000000000000000000000000..690ee99b00e27a3223e0df3df2dd760dad07525f
--- /dev/null
+++ b/tests/testthat/test-creer_graphe_1_4.R
@@ -0,0 +1,7 @@
+test_that("creer_graphe_1_4 fonctionne", {
+
+  # Test que le graphe est un ggplot
+  objet <- creer_graphe_1_4(millesime_teruti = 2018)
+  testthat::expect_equal(attr(objet, "class"), c("gg","ggplot"))
+
+})
diff --git a/vignettes/ac-ch1-4.Rmd b/vignettes/ac-ch1-4.Rmd
new file mode 100644
index 0000000000000000000000000000000000000000..74bfd1ac530753c0a4ba24ad9fd757dc933fc467
--- /dev/null
+++ b/vignettes/ac-ch1-4.Rmd
@@ -0,0 +1,25 @@
+---
+title: "ac- Chapitre 1 Graphe 4"
+output: rmarkdown::html_vignette
+vignette: >
+  %\VignetteIndexEntry{ac- Chapitre 1 Graphe 4}
+  %\VignetteEngine{knitr::rmarkdown}
+  %\VignetteEncoding{UTF-8}
+---
+
+```{r, include = FALSE}
+knitr::opts_chunk$set(
+  collapse = TRUE,
+  comment = "#>"
+)
+ggplot2::theme_set(gouvdown::theme_gouv(plot_title_size = 14, subtitle_size  = 12, base_size = 10, caption_size = 10) +
+                     ggplot2::theme(plot.caption.position =  "plot"))
+```
+# Descriptif
+La fonction `creer_graphe_1_4()` produit le graphique en barres des surfaces artificialisees en volume (Teruti-Lucas)
+
+```{r setup}
+library(propre.artificialisation)
+
+ creer_graphe_1_4(millesime_teruti=2018)
+```
diff --git a/vignettes/test.R b/vignettes/test.R
index 9eac1d9c84272ddf07d998f2a26f5fd260ba1437..b26bdbf24ac3972fb51be8549b50d0a404df785f 100644
--- a/vignettes/test.R
+++ b/vignettes/test.R
@@ -2,42 +2,74 @@ library(dplyr)
 library(gouvdown)
 millesime_teruti <- 2018
 
-# Creation de la table utile a la production du graphique
-data <- teruti %>%
-  dplyr::mutate(valeur=as.numeric(.data$valeur)) %>%
-  dplyr::filter(.data$CodeZone == "52" & .data$TypeZone == "R\u00e9gions" | .data$CodeZone %in% c("44","49","53","72","85") & .data$TypeZone == "D\u00e9partements",
-                .data$date == lubridate::make_date(millesime_teruti,"01","01")) %>%
-  tidyr::spread(key=.data$variable,value=.data$valeur,fill=0) %>%
-  tricky::set_standard_names() %>%
-  dplyr::mutate (voiries=(.data$sols_revetus )/.data$tous_sols*100,
-                 hors_voiries=(.data$sols_batis+ .data$sols_stabilises+ .data$autres_sols_artificialises )/.data$tous_sols*100
-  ) %>%
-  dplyr::select(.data$codezone,.data$zone,.data$voiries,.data$hors_voiries)%>%
-  tidyr::gather(variable,valeur,.data$voiries:.data$hors_voiries)%>%
-  dplyr::mutate(variable = replace(.data$variable, .data$variable=="hors_voiries","surfaces artificialisées hors voiries"),
-                codezone = replace(.data$codezone, .data$codezone=="52","Région"))%>%
-  dplyr::mutate(variable=factor(.data$variable,levels=c("surfaces artificialisées hors voiries","voiries"))%>% forcats::fct_inorder())
-
-graph_1_3<-data  %>%
-  ggplot2::ggplot(ggplot2::aes(x=.data$codezone,y=.data$valeur,fill=.data$variable)) +
-  ggplot2::geom_bar(stat="identity")+
-  ggplot2::labs(title= glue::glue("Part des surfaces artificialis\u00e9es dans la surface \nd\u00e9partementale et r\u00e9gionale en {millesime_teruti} en % (Teruti-Lucas)"),subtitle="",x="",y="",
-                fill="",
-                caption = glue::glue("Source : Teruti-Lucas {millesime_teruti}"))+
-
-  gouvdown::scale_fill_gouv_discrete(palette = "pal_gouv_fr")+
-  # ggplot2::geom_text(ggplot2::aes(y=.data$valeur , label=paste0(round(.data$valeur,1),"%")),position= ggplot2::position_dodge(width=0), vjust=0, size=3)+
-  ggplot2::theme(legend.position = "bottom")+
-  ggplot2::scale_y_continuous(labels = scales::number_format(suffix = " %", accuracy = 1))
-
-return(graph_1_3)
-
 
 
 
+#' Creation du graphique en barres surfaces artificialisees en volume (Teruti-Lucas)
+#' @description Graphique en barres surfaces artificialisees en volume (Teruti-Lucas)
+#'
+#' @param millesime_teruti une année parmi les millesimes sélectionnables par l'utilisateur, au format numerique.
+#'
+#' @return Un diagramme en barres
+#'
+#' @importFrom dplyr filter select mutate group_by desc arrange
+#' @importFrom forcats fct_inorder
+#' @importFrom ggplot2 ggplot aes geom_bar labs scale_y_continuous theme geom_text geom_col scale_fill_manual
+#' @importFrom scales number_format
+#' @importFrom glue glue
+#' @importFrom lubridate make_date
+#' @importFrom tidyr spread gather
+#' @importFrom tricky set_standard_names
+#'
+#' @export
+#'
+#' @examples
+#' creer_graphe_1_4(millesime_teruti=2018)
 
+creer_graphe_1_4 <- function(millesime_teruti){
 
+  # Creation de la table utile a la production du graphique
+  data <- teruti %>%
+    dplyr::mutate(valeur=as.numeric(.data$valeur)) %>%
+    dplyr::filter(.data$CodeZone == "52" & .data$TypeZone == "R\u00e9gions" | .data$CodeZone %in% c("44","49","53","72","85") & .data$TypeZone == "D\u00e9partements",
+                  .data$date == lubridate::make_date(millesime_teruti,"01","01")) %>%
+    tidyr::spread(key=.data$variable,value=.data$valeur,fill=0) %>%
+    tricky::set_standard_names() %>%
+    dplyr::arrange(.data$typezone) %>%
+    dplyr::mutate(zone = forcats::fct_drop(.data$zone) %>% forcats::fct_inorder(),
+                  voiries=.data$sols_revetus,
+                  hors_voiries=(.data$sols_batis+ .data$sols_stabilises+ .data$autres_sols_artificialises )
+    ) %>%
+    dplyr::select(.data$typezone,.data$codezone,.data$zone,.data$voiries,.data$hors_voiries)%>%
+    tidyr::gather(variable,valeur,.data$voiries:.data$hors_voiries)%>%
+    dplyr::mutate(variable = replace(.data$variable, .data$variable=="hors_voiries","surfaces artificialis\u00e9es hors voiries"),
+                  codezone = replace(.data$codezone, .data$codezone=="52","R\u00e9gion"))%>%
+    dplyr::mutate(variable=factor(.data$variable,levels=c("surfaces artificialis\u00e9es hors voiries","voiries"))%>% forcats::fct_inorder()) %>%
+    dplyr::group_by(.data$typezone,.data$codezone,.data$zone) %>%
+    dplyr::arrange(.data$codezone, dplyr::desc(.data$variable))%>%
+    mutate_at(.funs = list(prec = lag),
+              .vars = vars(valeur)) %>%
+    dplyr::mutate(position = dplyr::case_when(
+      .data$prec < 40000 ~ cumsum(.data$valeur)+8000,
+      .data$typezone == "Départements" & .data$variable == "voiries" ~ cumsum(.data$valeur),
+        TRUE ~ cumsum(.data$valeur) - 0.5 * .data$valeur
+      ))
+    # dplyr::mutate(position = cumsum(.data$valeur) - 0.5 * .data$valeur)
 
+  graph_1_4<-data  %>%
+    ggplot2::ggplot(ggplot2::aes(x=.data$zone,y=.data$valeur)) +
+    ggplot2::geom_col(ggplot2::aes(fill = .data$variable), width = 0.9)+
+    ggplot2::geom_text(ggplot2::aes(y = .data$position, label = round(.data$valeur,0), group =.data$variable), color = "black", size=3)+
+    ggplot2::labs(title= glue::glue("Surfaces artificialis\u00e9es en {millesime_teruti} (Teruti-Lucas)"),subtitle="",x="",y="",
+                  fill="",
+                  caption = glue::glue("Source : Teruti-Lucas {millesime_teruti}"))+
+    ggplot2::theme(legend.position = "bottom")+
+    ggplot2::scale_y_continuous(labels = scales::number_format(suffix = "", accuracy = 1)) +
+    ggplot2::coord_flip() +
+    ggplot2::scale_x_discrete(limits=rev) +
+    ggplot2::scale_fill_manual(values = gouvdown::gouv_palettes[["pal_gouv_i"]][1:2])
 
+  return(graph_1_4)
 
+}