Module visualization
Modules d’analyse et génération de graphiques interactifs Plotly.
Guide utilisateur : voir Utilisation pour description détaillée des 4 analyses.
visualization.analyse_trendlines_v2
Analyse des tendances temporelles (1999-2018).
Métriques Analysées
Volume d’interactions
Durée de préparation (moyenne, médiane)
Complexité des recettes
Nombre d’ingrédients
Profils nutritionnels
Tags populaires
Insights Clés
Boom 2008-2018 : +350% volume interactions
Simplification : Recettes plus rapides (-15% temps préparation)
Santé : Réduction calories, hausse tags végétariens/healthy
Complexité : Score +12% sur 20 ans
Ingrédients : Stable ~9 ingrédients par recette
Visualisations Générées
6 graphiques temporels synchronisés (subplots)
Tendances avec régression linéaire (R² affichés)
Annotations des insights majeurs
Zoom interactif Plotly avec rangeselector
Exemple d’Utilisation
from visualization import analyse_trendlines_v2
from data.cached_loaders import get_recipes_clean
# Charger données
recipes = get_recipes_clean()
# Afficher analyse complète
analyse_trendlines_v2.render_trendlines_analysis()
# L'analyse génère automatiquement:
# - Widgets sélection temporelle (slider années)
# - 6 graphiques tendances
# - Métriques statistiques (R², p-values)
visualization.analyse_seasonality
Analyse des patterns saisonniers.
Métriques Analysées
Distribution par saison
Variations mensuelles
Pics saisonniers d’activité
Catégories de recettes par saison
Insights Clés
Hiver : Pics calories (+12%), recettes réconfort
Été : Recettes légères, salades, BBQ
Décembre : Pic absolu (+45% vs moyenne annuelle)
Automne : +18% recettes vs été
Patterns stables : Reproduction annuelle prévisible
Visualisations Générées
Histogrammes saisonniers avec palette thématique (orange/bleu/vert/rouge)
Heatmaps mensuelles (12 mois × métriques nutritionnelles)
Distribution nutritionnelle par saison
Codage couleur automatique par saison
Exemple d’Utilisation
from visualization import analyse_seasonality
from data.cached_loaders import get_recipes_clean
# Charger données
recipes = get_recipes_clean()
# Afficher analyse saisonnière
analyse_seasonality.render_seasonality_analysis()
# L'analyse génère:
# - Sélecteur saison (Automne, Hiver, Printemps, Été)
# - Graphiques distribution saisonnière
# - Heatmap mensuelle interactive
# - Statistiques par saison
visualization.analyse_weekend
Analyse de l’effet jour de la semaine vs weekend.
Métriques Analysées
Comparaison jours ouvrés vs weekend
Variations de complexité
Impact sur types de recettes
Insights Clés
Lundi = champion : +45% publications vs moyenne hebdomadaire
Samedi = creux : -49% publications (le plus bas)
Durée/complexité : Aucune différence significative semaine vs weekend
Conclusion : Moment publication ≠ type recette
Effet psychologique : Planification début semaine
Visualisations Générées
3 panels comparatifs (volume, distribution, écarts à la moyenne)
Tests statistiques Chi-2 avec p-values affichées
Barres bicolores semaine (bleu) vs weekend (orange)
Écarts à la moyenne en pourcentage
Exemple d’Utilisation
from visualization import analyse_weekend
from data.cached_loaders import get_recipes_clean
# Charger données
recipes = get_recipes_clean()
# Afficher analyse weekend
analyse_weekend.render_weekend_analysis()
# L'analyse génère:
# - Comparaison jour par jour (7 jours)
# - Tests statistiques Chi-2
# - Distribution complexité/durée
# - Insights sur effet jour semaine
visualization.analyse_ratings
Analyse des notes utilisateurs.
Métriques Analysées
Distribution des notes (0-5 étoiles)
Statistiques agrégées
Corrélations avec caractéristiques
Analyse des outliers
Insights Clés
Biais positif massif : 78% notes = 5 étoiles
Moyenne : 4.63/5 (distribution asymétrique)
Notes basses rares : <2% notes ≤ 2 étoiles
Corrélations faibles : Complexité/temps ≠ note
Effet auto-sélection : Utilisateurs satisfaits notent
Visualisations Générées
Histogrammes interactifs avec hover détails
Distribution avec courbe de densité
Métriques satisfaction (moyenne, médiane, mode)
Boxplots par tranche de rating
Exemple d’Utilisation
from visualization import analyse_ratings
from data.cached_loaders import get_ratings_longterm
# Charger ratings
ratings = get_ratings_longterm()
# Afficher analyse ratings
analyse_ratings.render_ratings_analysis()
# L'analyse génère:
# - Distribution complète 0-5 étoiles
# - Statistiques descriptives
# - Corrélations avec attributs recettes
# - Identification outliers
visualization.analyse_ratings_simple
Version simplifiée de l’analyse des ratings.
- mangetamain_analytics.visualization.analyse_ratings_simple.setup_s3_connection()[source]
Configure la connexion S3 pour DuckDB
- mangetamain_analytics.visualization.analyse_ratings_simple.get_ratings_data()[source]
Récupère les données depuis le Parquet S3
- mangetamain_analytics.visualization.analyse_ratings_simple.process_data(ratings_data)[source]
Traite les données pour l’analyse
- mangetamain_analytics.visualization.analyse_ratings_simple.create_plots_streamlit(ratings_data, stats) None[source]
Crée les graphiques pour Streamlit
- mangetamain_analytics.visualization.analyse_ratings_simple.create_plots_matplotlib(ratings_data, stats) None[source]
Crée les graphiques avec matplotlib (mode standalone)
- mangetamain_analytics.visualization.analyse_ratings_simple.print_stats(stats) None[source]
Affiche les statistiques en mode console
- mangetamain_analytics.visualization.analyse_ratings_simple.print_interpretation() None[source]
Affiche l’interprétation
visualization.analyse_trendlines
Version initiale de l’analyse des tendances.
visualization.custom_charts
Fonctions utilitaires pour créer des graphiques réutilisables.
Module pour les graphiques personnalisés.
- mangetamain_analytics.visualization.custom_charts.create_correlation_heatmap(conn, table_name: str) None[source]
Crée une heatmap de corrélation.
- mangetamain_analytics.visualization.custom_charts.create_distribution_plot(conn, table_name: str, column_name: str) None[source]
Crée un graphique de distribution.
visualization.plotly_config
Configuration Plotly pour l’application.
Configuration centralisée pour les graphiques Plotly.
Ce module définit les styles, couleurs et configurations réutilisables pour tous les graphiques de l’application.
- mangetamain_analytics.visualization.plotly_config.apply_theme(fig: Any, title: str | None = None, height: int = 600, add_grids: bool = False) Any[source]
Applique le thème blanc cohérent à un graphique Plotly.
- Paramètres:
fig – Figure Plotly à styliser
title – Titre optionnel du graphique
height – Hauteur du graphique en pixels
add_grids – Si True, ajoute les grilles aux axes (défaut: False) Pour les subplots, il vaut mieux configurer les grilles directement dans le code de la fonction
- Renvoie:
Figure Plotly avec thème appliqué
Exemple
>>> fig = go.Figure() >>> fig.add_trace(go.Scatter(x=[1,2,3], y=[4,5,6])) >>> fig = apply_theme(fig, title="Mon graphique", height=500)