Que fait chartreel ?
Créez des vidéos d'animation de données courtes et honnêtes avec l'outil en ligne de commande chartreel. Vous choisissez le type de graphique, façonnez les données, rédigez l'histoire, effectuez le rendu et vérifiez le résultat. Le moteur de rendu n'affiche que les valeurs du CSV ou des interpolations linéaires entre deux lignes adjacentes.
0. Outils
chartreel doctor # vérifie ffmpeg, Chromium et les polices
Si chartreel est manquant :
pip install "git+https://github.com/Xkongai/chartreel" # ou : uv tool install git+https://github.com/Xkongai/chartreel
python -m playwright install chromium # à ignorer si Chrome/Chromium est déjà installé
# ffmpeg : macOS `brew install ffmpeg` · Ubuntu `sudo apt install ffmpeg` · Windows `winget install Gyan.FFmpeg`
# Texte chinois/japonais/coréen sur Linux : `sudo apt install fonts-noto-cjk fonts-noto-color-emoji`
1. Obtenez des données réelles — n'inventez jamais les nombres
- Utilisez le fichier de l'utilisateur s'il en fournit un. Ne le modifiez pas ; reformatez-le en un nouveau CSV.
- Sinon, récupérez les données depuis une source primaire et citez la source, puis enregistrez la réponse brute à côté du CSV.
Voir
references/data-sources.md(API de la Banque mondiale, Our World in Data, FRED, Eurostat, offices nationaux de statistiques). - Si l'utilisateur tape des nombres dans le chat, utilisez exactement ceux-ci et citez-les comme « fournis par l'utilisateur ».
- Ne comblez jamais les lacunes de mémoire. Les cellules vides sont autorisées : les lacunes intérieures sont interpolées et
chartreel validateindique combien ; les blancs en début/fin signifient que la série est absente. - Enregistrez le nom de la source, le code de l'indicateur ou l'URL, et la licence ; ils vont dans
--source.
2. Choisissez le modèle
| Histoire | Modèle | Forme des données |
|---|---|---|
| Qui est numéro 1 au fil du temps, dépassements (« Classement PIB 1990–2024 ») | race | période × séries (5–40 séries) |
| Comment quelques entités ont évolué ou se sont croisées (« Chine vs Inde population ») | line | période × séries (2–8 séries) |
| Un nombre époustouflant, puis des comparaisons « ×N » (« de 191 Mds $ à 18,7 T $ ») | counter | label,value[,note] (2–5 lignes) |
| Comment un tout se répartit et évolue (« population mondiale par région ») | share | période × parts (2–10 parts, valeurs ≥ 0) |
3. Façonnez le CSV
annee,Chine,Inde,États-Unis # large : première colonne = période, une colonne par série
1990,361560229446,320979026420,5963144000000
annee,nom,valeur # long : également accepté, pivoté automatiquement
1990,Chine,361560229446
label,valeur,note # counter
1980年,191487500000,Début de la réforme et ouverture
Règles : périodes croissantes ; nombres simples (les virgules, $, % sont supprimées) ; UTF-8 (BOM autorisé).
Pour les longues plages, conservez des lignes annuelles — plus de lignes donnent un mouvement plus fluide et plus fidèle.
4. Rédigez l'histoire des données
- Accroche (titre) : la question ou la surprise, ≤ 2 lignes courtes. « Les plus grandes économies du monde, 1990–2024 », « 中印人口之争 ».
- Contexte (sous-titre) : unités et périmètre — « PIB, en USD courants ».
- Moments clés (
--note "PÉRIODE : texte") : 1–3 événements. Chacun doit être visible dans les données à cette période (vérifiez le CSV avant d'écrire « X dépasse Y »). - Conclusion (
--takeaway) : une phrase calculée à partir du CSV. Faites le calcul en code, par exemplepython -c "print(18729668435848/361560229446)"→ 51,8 → « Le PIB de la Chine a été multiplié par 52 en 34 ans ». Arrondissez honnêtement. - Source (
--source) : toujours. Exemple :Banque mondiale WDI (NY.GDP.MKTP.CD), CC BY 4.0.
Regroupez le tout dans une configuration JSON pour que le rendu soit reproductible (references/options.md liste chaque clé) :
{
"template": "race", "theme": "dark", "aspect": "9:16", "duration": 15,
"title": "Les plus grandes économies du monde, 1990–2024", "subtitle": "PIB, en USD courants",
"source": "Banque mondiale WDI (NY.GDP.MKTP.CD), CC BY 4.0",
"takeaway": "Le PIB de la Chine a été multiplié par 52 en 34 ans", "prefix": "$", "top": 10,
"notes": ["2010 : La Chine dépasse le Japon"],
"series": {"Chine": {"emoji": "🇨🇳", "color": "#FF6B6B"}}
}
Vidéos en chinois : ajoutez "locale": "zh" (nombres en 万/亿/万亿) et rédigez le titre/les notes en chinois.
4b. Choisissez un préréglage de style (optionnel, recommandé pour les vidéos sociales)
--style regroupe un thème, une carte d'accroche, un compteur d'années, la décoration du numéro 1 et des effets. Chaque préréglage
conserve les chiffres exacts : l'accroche ne couvre que les ~1,5 premières secondes, avant que les données ne commencent à bouger, et rien
n'est dessiné sur la conclusion ni (pour les courses) entre les barres.
--style | Aspect | Idéal pour |
|---|---|---|
classic (défaut) | propre, sans accroche | docs, diapos, X |
cinematic | or sur bleu sarcelle, accroche letterbox, vignette, année roulante, couronne sur le #1, zoom avant | YouTube Shorts, Bilibili |
news | bandeaux TV : bandeau accroche « DATA », numéros de classement, badge d'année rouge, bandeau source | sujets sérieux, Weibo/X |
editorial | papier, accroche machine à écrire, barres grises + --highlight "A,B", grand chiffre serif pour l'année | Xiaohongshu, newsletters |
arcade | néon, confettis + punch quand une barre atteint le top 3, ▲ gain de places, traînées de vitesse | Douyin/TikTok, gaming |
retro | VHS : lignes de balayage, texte chromatique, tampon PLAY, accroche machine à écrire | sujets nostalgiques |
glass | taches de couleur flottantes, panneau de graphique givré, barre de progression en haut | sujets tech/produits |
bold | Douyin grand texte : mots d'accroche géants surlignés, énorme année, numéros de classement | Douyin/Kuaishou |
Options d'histoire qui accompagnent les préréglages :
--hook "Qui possède la plus grande économie du monde ?": la question de la première seconde (par défaut le titre ;--no-hookla désactive). Elle doit pouvoir être répondue par les données.--cta "Suivez pour plus d'histoires de données": une petite ligne sous la conclusion.- Réglage fin :
--fx bg,vignette,letterbox,scanlines,punch,confetti,trails,arrows,glassremplace les effets du préréglage,--no-fx confettien supprime un ;--year-style watermark|roll|row|badge,--progress timeline|top|both|none,--highlight leader|"A,B",--leader/--no-leader,--ranks,--safe-zone/--no-safe-zone(les préréglages évitent les boutons Douyin/Shorts et la zone des légendes).chartreel stylesliste tout. --audio music.mp3 [--audio-fade 1.0]ajoute un morceau que l'utilisateur possède ou sous licence dans le MP4 (rogné, fondu entrée/sortie). Ne téléchargez jamais de musique protégée par le droit d'auteur ; chartreel n'en fournit aucune.
Le "theme" d'un fichier de configuration est ignoré lorsque vous passez --style en ligne de commande (passez --theme pour le remplacer).
5. Validez, effectuez le rendu, vérifiez
chartreel validate data.csv -c story.json # vérification du schéma + des options, erreurs de lignes/colonnes claires
chartreel render data.csv -c story.json -o out/ # out/data.mp4, out/data.gif, out/data-cover.png
chartreel preview data.csv -c story.json -o out/ # optionnel : lecteur HTML autonome pour parcourir
Préréglages de plateforme : Douyin/TikTok/Shorts/Reels -a 9:16 -d 15 (10–30 s) · Xiaohongshu -a 3:4 ou 9:16 ·
Bilibili/YouTube/X -a 16:9 · X/Instagram feed -a 1:1 ou 4:5. Rythme : environ 0,3–0,6 s par période pour une course.
Brouillons rapides : --size 540 --fps 15. --jobs N définit le nombre de travailleurs parallèles. Un rendu de course de 12 s en 1080×1920 prend
environ 10–30 s selon le CPU.
Ensuite regardez le résultat avant de le remettre :
ffmpeg -v error -i out/data.mp4 -vf "fps=1,scale=360:-1,tile=4x3" -frames:v 1 out/contact.png
Ouvrez la couverture et la planche contact. Vérifiez : titre non coupé, étiquettes lisibles, pas de tofu CJK (□), la conclusion correspond aux nombres, la source est visible, l'accroche (première seconde) se lit en un coup d'œil. Corrigez et refaites le rendu si nécessaire.
6. Remettez le résultat
Indiquez les chemins des fichiers MP4, GIF et de couverture, la source et la licence, et comment la conclusion a été calculée. Dites clairement si des cellules ont été interpolées (validate l'affiche). Ne prétendez pas à une tendance que les données ne montrent pas.
Règles de précision (non-négociables)
- Les valeurs à l'écran = valeurs du CSV à chaque période, interpolation linéaire entre les périodes. Le modèle counter compte jusqu'à chaque valeur puis affiche le nombre exact ; dites-le si on vous le demande.
- Les nombres dérivés (ratios, croissance, « dépasse ») doivent être calculés à partir du CSV, pas mémorisés.
- Ne mélangez jamais les unités ou les devises dans un même graphique ; ne comparez jamais des valeurs nominales et réelles sans le préciser.
- Affichez toujours la source. Conservez le téléchargement brut pour que l'utilisateur puisse l'auditer.