library(gapminder)
library(ggplot2)
library(gganimate)

# Créer le graphique initial
plot_ani <-
  ggplot(data = gapminder, aes(x = gdpPercap, y = lifeExp, size = pop,
                                color = continent, frame = year)) +
  geom_point() +
  scale_x_log10()

# Animer le graphique avec une transition fluide
plot_ani <- plot_ani +
  transition_time(year) +
  labs(title = 'Year: {closest_state}')

# Afficher le graphique
animate(plot_ani)

Ce code utilise les packages gapminder, ggplot2, et gganimate pour créer un graphique animé montrant l’évolution de l’espérance de vie en fonction du PIB par habitant pour différents continents, de 1952 à 2007. Le graphique initial est créé avec ggplot, avec l’ajout d’un paramètre frame pour indiquer que le graphique doit être animé en fonction de l’année. Le code utilise ensuite transition_time pour animer le graphique de manière fluide en fonction de l’année. Le graphique final est créé avec animate qui prend en argument plot_ani, le graphique initial avec transition. Enfin, le code affiche l’animation.

library(ggplot2)
library(tidyverse)
library(gganimate)
data(diamonds)
diamonds_sum <- diamonds %>%
        group_by(cut, color) %>%
        summarise(carat_sum = sum(carat))
ggplot(diamonds_sum, aes(x = cut, y = carat_sum, fill = color)) +
        geom_bar(stat = "identity", position = "dodge") + 
        geom_text(aes(label = round(carat_sum, 1)), position = position_dodge(width = 0.9), vjust = -0.5, size = 3) +
        labs(x = "Diamond Cut", y = "Total Carats", title = "Total Carats by Cut and Color") +
        transition_states(states = color, transition_length = 5, state_length = 5)+
        enter_fade()+
        exit_fade()+
        ease_aes('cubic-in-out')

Cette présentation graphique utilise les données de diamants. Elle présente la somme des carats pour chaque combinaison de coupe et de couleur de diamant. La présentation graphique est animée pour visualiser la distribution des carats pour chaque couleur de diamant. Les bars se déplacent pour montrer les changements dans la somme des carats, et les changements sont accompagnés d’un fondu en entrée et en sortie pour une transition plus fluide. La présentation est également accompagnée de la fonction ease_aes (‘cubic-in-out’) pour ajouter une courbe d’accélération pour rendre la transition encore plus fluide.

# install.packages("transformr")
library(transformr)
library(ggplot2)
library(gganimate)
library(dplyr)
library(tidyr)
library(viridis)

# Créer un jeu de données fictif
set.seed(123)
data <- data.frame(
  Time = rep(1:10, each = 10),
  Value = rnorm(100),
  Category = rep(letters[1:10], each = 10)
)

# Créer un graphique animé sophistiqué
p <- ggplot(data, aes(x = Time, y = Value, color = Category)) +
  geom_line(aes(group = Category), size = 1, alpha = 0.7, lineend = "round") +
  geom_point(size = 3, alpha = 0.7) +
  scale_color_viridis(discrete = TRUE) +
  theme_minimal() +
  labs(title = "Évolution des séries chronologiques",
       x = "Temps", y = "Valeur") +
  transition_states(states = Time, transition_length = 2, state_length = 1) +
  enter_fade() +
  exit_fade() +
  ease_aes('linear')

# Créer l'animation
animation <- animate(p, nframes = 100, end_pause = 10)

# Afficher l'animation
animation

Dans cet exemple, nous utilisons un jeu de données fictif avec des séries chronologiques et des catégories. Nous utilisons ggplot2 pour créer un graphique animé sophistiqué qui combine des lignes, des points et une palette de couleurs (Viridis). Le graphique est ensuite animé à l’aide de gganimate.

# install.packages("ggplot2")
# install.packages("gganimate")
library(ggplot2)
library(gganimate)
library(dplyr)

# Charger les données de température
data <- data.frame(
  city = rep(c("New York", "San Francisco", "Miami"), each = 120),
  year = rep(2000:2019, each = 12),
  month = rep(1:12, times = 20),
  temperature = runif(720, min = -5, max = 35)
)

# Créer un tracé de la carte animée
p <- ggplot(data, aes(x = city, y = temperature, group = city, frame = year)) +
  geom_line(aes(color = city)) +
  theme_minimal() +
  labs(title = "Évolution de la température mensuelle par ville", x = "", y = "Température (°C)") +
  scale_color_manual(values = c("New York" = "blue", "San Francisco" = "red", "Miami" = "green")) +
  transition_states(year, transition_length = 2, state_length = 1) +
  enter_fade() +
  exit_fade()

# Animer le tracé
animate(p, nframes = 500, duration = 20)

Ce code crée un graphique linéaire animé qui montre l’évolution de la température mensuelle pour New York, San Francisco et Miami sur une période de 20 ans. Chaque ville est représentée par une ligne colorée, et l’animation montre comment les températures varient au fil des années.

Ce type de visualisation animée peut être complexe à réaliser, mais il offre une représentation puissante des données temporelles.

# install.packages("plotly")
library(plotly)
library(dplyr)

# Créer des données de particules animées
set.seed(123)
n <- 100
data <- data.frame(
  time = rep(1:10, each = n),
  id = rep(1:n, times = 10),
  x = rnorm(n * 10),
  y = rnorm(n * 10)
)

# Créer une animation interactive avec Plotly
p <- data %>%
  plot_ly(x = ~x, y = ~y, ids = ~id, frame = ~time, type = 'scatter', mode = 'markers',
          marker = list(size = 10, color = ~time, colorscale = 'Viridis', opacity = 0.7)) %>%
  layout(
    title = "Animation de dispersion de particules",
    xaxis = list(range = c(-3, 3)),
    yaxis = list(range = c(-3, 3)),
    showlegend = FALSE
  ) %>%
  animation_slider(
    currentvalue = list(prefix = "Time: "),
    transition = 500, frame = list(duration = 500, redraw = TRUE),
    fromcurrent = TRUE
  )

p

Ce code crée une animation interactive de dispersion de particules avec des points de données qui se déplacent aléatoirement sur un plan pendant 10 étapes temporelles. Chaque point est représenté par une couleur qui varie au fil du temps. Vous pouvez faire glisser le curseur pour afficher différentes étapes de l’animation et explorer les données.

Cette visualisation est plus sophistiquée car elle utilise Plotly pour créer une animation interactive avec des fonctionnalités telles que la possibilité de zoomer, de déplacer et d’explorer les données.