Bonjour,


J'ai trouvé ceci :https://stackoverflow.com/questions/...nut-chart-in-r

J'ai pris ces données et les ai modifiées pour mon usage.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
library(tidyverse
library(ggplot2)
  library(webr)
  library(dplyr)
 
  lexicon <- data.frame("Level1" = c(rep("Tox", 9), rep("No tox", 3),rep("safety",3)),
                        "Level2" = c(rep("Enterobacteria", 6), rep("Bacillus", 5), rep("Probiotic", 4)),
                        "Level3" = c("E coli", "Proteus", "Citrobacter", "Salmonella", "Shigella", "Yersinia", "B Cereus", "B Anthracis", "B cytotoxicus", "B thuringiensis", "B mycoides", "Bifidobacterium sp"," Lactobacillus casei ", "Lactococcus lactis ", "Streptococcus thermophilus")
  )
  lexicon %>%
    mutate(top_level = Level1) %>%
    pivot_longer(1:3) %>%
    group_by(name, value) %>%
    mutate(width = n()) %>%
    unique() %>%
    arrange(name) %>%
    group_by(name) %>%
    mutate(ymid = as.numeric(sub("\\D+", "", name)),
           ymax = ymid + 0.5, ymin = ymid - 0.5,
           xmin = c(0, head(cumsum(width), -1)),
           xmax = cumsum(width),
           xmid = (xmax + xmin)/2 ) %>%
 
    ggplot(aes(xmid, ymid, fill = top_level)) +
    geom_rect(aes(xmin = xmin, xmax = xmax, ymin = ymin, ymax = ymax,
                  alpha = name, color = top_level)) +
    geomtextpath::geom_textpath(aes(y = ymid + 0.25, label = value, 
                                    group = value)) +
    scale_alpha_manual(values = c(1, 0.3, 0.1)) +
    scale_fill_manual(values = c("#cd9900", "#00817e","#aaaaaa")) +
    scale_colour_manual(values = c("#cd9900", "#00817e","#aaaaaa")) +
    scale_y_continuous(limits = c(-0.5, 3.6)) +
    coord_polar() +
    theme_void() +
    theme(legend.position = "none")
J'ai une erreur, le PieDonut (geom_rect) ne couvre pas tout le cercle avec utilisation de coord_polar().

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
Messages d'avis :
1: Dans mapply(FUN = f, ..., SIMPLIFY = FALSE) :
  l'argument le plus long n'est pas d'une longueur multiple du plus court
2: Dans mapply(FUN = f, ..., SIMPLIFY = FALSE) :
  l'argument le plus long n'est pas d'une longueur multiple du plus court
3: Dans mapply(FUN = f, ..., SIMPLIFY = FALSE) :
  l'argument le plus long n'est pas d'une longueur multiple du plus court
4: Dans path[singletons] <- Map(pathify, data = path[singletons], hjust = params$hjust[singletons],  :
  le nombre d'objets à remplacer n'est pas multiple de la taille du remplacement
Merci pour la réponse