Module visualization
Analysis and interactive Plotly chart generation modules.
User guide: see Usage for detailed description of the 4 analyses.
visualization.analyse_trendlines_v2
Temporal trend analysis (1999-2018).
Analyzed Metrics
Interaction volume
Preparation time (mean, median)
Recipe complexity
Number of ingredients
Nutritional profiles
Popular tags
Key Insights
2008-2018 Boom: +350% interaction volume
Simplification: Faster recipes (-15% preparation time)
Health: Reduced calories, increased vegetarian/healthy tags
Complexity: +12% score over 20 years
Ingredients: Stable ~9 ingredients per recipe
Generated Visualizations
6 synchronized temporal charts (subplots)
Trends with linear regression (R² displayed)
Major insights annotations
Interactive Plotly zoom with rangeselector
Usage Example
from visualization import analyse_trendlines_v2
from data.cached_loaders import get_recipes_clean
# Load data
recipes = get_recipes_clean()
# Display complete analysis
analyse_trendlines_v2.render_trendlines_analysis()
# The analysis automatically generates:
# - Temporal selection widgets (year slider)
# - 6 trend charts
# - Statistical metrics (R², p-values)
visualization.analyse_seasonality
Seasonal pattern analysis.
Analyzed Metrics
Distribution by season
Monthly variations
Seasonal activity peaks
Recipe categories by season
Key Insights
Winter: Calorie peaks (+12%), comfort recipes
Summer: Light recipes, salads, BBQ
December: Absolute peak (+45% vs annual average)
Autumn: +18% recipes vs summer
Stable patterns: Predictable annual reproduction
Generated Visualizations
Seasonal histograms with thematic palette (orange/blue/green/red)
Monthly heatmaps (12 months × nutritional metrics)
Nutritional distribution by season
Automatic color coding by season
Usage Example
from visualization import analyse_seasonality
from data.cached_loaders import get_recipes_clean
# Load data
recipes = get_recipes_clean()
# Display seasonal analysis
analyse_seasonality.render_seasonality_analysis()
# The analysis generates:
# - Season selector (Autumn, Winter, Spring, Summer)
# - Seasonal distribution charts
# - Interactive monthly heatmap
# - Statistics by season
visualization.analyse_weekend
Day of week vs weekend effect analysis.
Analyzed Metrics
Weekday vs weekend comparison
Complexity variations
Impact on recipe types
Key Insights
Monday = champion: +45% publications vs weekly average
Saturday = low point: -49% publications (lowest)
Duration/complexity: No significant difference weekday vs weekend
Conclusion: Publication timing ≠ recipe type
Psychological effect: Planning at week start
Generated Visualizations
3 comparative panels (volume, distribution, deviations from mean)
Chi-2 statistical tests with displayed p-values
Two-color bars weekday (blue) vs weekend (orange)
Deviations from mean in percentage
Usage Example
from visualization import analyse_weekend
from data.cached_loaders import get_recipes_clean
# Load data
recipes = get_recipes_clean()
# Display weekend analysis
analyse_weekend.render_weekend_analysis()
# The analysis generates:
# - Day by day comparison (7 days)
# - Chi-2 statistical tests
# - Complexity/duration distribution
# - Insights on day of week effect
visualization.analyse_ratings
User ratings analysis.
Analyzed Metrics
Rating distribution (0-5 stars)
Aggregated statistics
Correlations with characteristics
Outlier analysis
Key Insights
Massive positive bias: 78% ratings = 5 stars
Average: 4.63/5 (asymmetric distribution)
Rare low ratings: <2% ratings ≤ 2 stars
Weak correlations: Complexity/time ≠ rating
Self-selection effect: Satisfied users rate
Generated Visualizations
Interactive histograms with hover details
Distribution with density curve
Satisfaction metrics (mean, median, mode)
Boxplots by rating range
Usage Example
from visualization import analyse_ratings
from data.cached_loaders import get_ratings_longterm
# Load ratings
ratings = get_ratings_longterm()
# Display ratings analysis
analyse_ratings.render_ratings_analysis()
# The analysis generates:
# - Complete 0-5 stars distribution
# - Descriptive statistics
# - Correlations with recipe attributes
# - Outlier identification
visualization.analyse_ratings_simple
Simplified version of ratings analysis.
- 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
Initial version of trend analysis.
visualization.custom_charts
Utility functions for creating reusable charts.
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
Plotly configuration for the 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)