Graphiques et diagrammes
Analyser des données visuelles
Les graphiques, diagrammes et tableaux sont omniprésents dans le monde professionnel : rapports financiers, dashboards, présentations, publications scientifiques. La vision Grok vous permet d’extraire automatiquement les données et les insights contenus dans ces visuels.
Pourquoi c’est différent de l’OCR
L’analyse de graphiques va bien au-delà de la simple extraction de texte. Le modèle doit :
- Identifier le type de graphique (barres, lignes, camembert, scatter plot, etc.)
- Lire les axes et leurs échelles
- Extraire les valeurs des données
- Comprendre les légendes et les associer aux séries de données
- Interpréter les tendances et les patterns
Analyse d’un graphique simple
def analyser_graphique(image_url):
prompt = """Analyse ce graphique et fournis :
1. Type de graphique (barres, lignes, camembert, etc.)
2. Titre du graphique (si visible)
3. Labels des axes X et Y
4. Données extraites sous forme de tableau
5. Tendance principale observée
6. Toute annotation ou point notable
Présente les données dans un tableau markdown."""
response = client.responses.create(
model="grok-4",
input=[
{"type": "input_image", "image_url": image_url, "detail": "high"},
{"type": "input_text", "text": prompt}
],
store=False
)
return response.output_text
Le mode detail: "high" est indispensable pour lire les valeurs précises sur les axes et les légendes.
Extraction de données tabulaires
Pour obtenir des données directement exploitables par votre code :
def extraire_donnees_graphique(image_url):
prompt = """Extrais les données de ce graphique en JSON.
Format attendu :
{
"type": "bar|line|pie|scatter",
"titre": "...",
"axe_x": {"label": "...", "valeurs": [...]},
"axe_y": {"label": "...", "unite": "..."},
"series": [
{
"nom": "Série 1",
"valeurs": [10, 20, 30, ...]
}
]
}
Estime les valeurs numériques aussi précisément que possible
en vous basant sur la position des points/barres par rapport
aux graduations."""
response = client.responses.create(
model="grok-4",
input=[
{"type": "input_image", "image_url": image_url, "detail": "high"},
{"type": "input_text", "text": prompt}
],
store=False
)
return response.output_text
Analyse de diagrammes techniques
Les diagrammes d’architecture, les organigrammes et les schémas de flux sont également bien compris par Grok :
def analyser_diagramme(image_url):
prompt = """Analyse ce diagramme technique et décris :
1. Le type de diagramme (architecture, flux, organigramme, UML, etc.)
2. Les composants/entités principaux
3. Les connexions et relations entre composants
4. Le flux de données ou de processus (si applicable)
5. Les technologies ou outils mentionnés
Si c'est un diagramme de flux, décris le chemin principal
de bout en bout."""
response = client.responses.create(
model="grok-4",
input=[
{"type": "input_image", "image_url": image_url, "detail": "high"},
{"type": "input_text", "text": prompt}
],
store=False
)
return response.output_text
Comparaison de graphiques
Vous pouvez envoyer plusieurs graphiques dans la même requête pour une analyse comparative :
def comparer_graphiques(url_graphique_1, url_graphique_2):
prompt = """Compare ces deux graphiques et identifie :
1. Les points communs (variables mesurées, période, etc.)
2. Les différences de tendance
3. Les écarts significatifs
4. Une synthèse en 3-4 phrases"""
response = client.responses.create(
model="grok-4",
input=[
{"type": "input_text", "text": "Graphique 1 :"},
{"type": "input_image", "image_url": url_graphique_1, "detail": "high"},
{"type": "input_text", "text": "Graphique 2 :"},
{"type": "input_image", "image_url": url_graphique_2, "detail": "high"},
{"type": "input_text", "text": prompt}
],
store=False
)
return response.output_text
Cas d’usage professionnel : rapports automatisés
Imaginez un pipeline qui transforme les captures de dashboards en rapports textuels :
def generer_rapport_dashboard(screenshots):
rapport_sections = []
for i, screenshot in enumerate(screenshots, 1):
prompt = f"""Tu es un analyste business. Cette capture d'écran
est la section {i} d'un dashboard. Analyse les métriques affichées
et rédige un paragraphe de synthèse professionnel.
Inclus :
- Les KPI principaux et leurs valeurs
- Les tendances (hausse, baisse, stabilité)
- Les alertes ou anomalies visibles
- Une recommandation si pertinent"""
response = client.responses.create(
model="grok-4",
input=[
{"type": "input_image", "image_url": screenshot, "detail": "high"},
{"type": "input_text", "text": prompt}
],
store=False
)
rapport_sections.append(response.output_text)
return "\n\n".join(rapport_sections)
Limites de l’analyse graphique
- Précision des valeurs : Grok estime les valeurs en se basant sur la position visuelle. Pour des valeurs exactes, préférez les données sources
- Graphiques 3D : les représentations en perspective compliquent la lecture des valeurs
- Graphiques superposés : quand plusieurs séries se chevauchent, la distinction peut être difficile
- Petites légendes : les légendes en très petit texte peuvent être mal lues même en mode
high
Points clés à retenir
- Grok analyse les graphiques en comprenant le contexte, pas seulement le texte
- Utilisez
detail: "high"pour une lecture précise des valeurs et légendes - Demandez un format structuré (JSON, tableau markdown) pour exploiter les données
- La comparaison multi-images fonctionne bien pour les analyses croisées
- Les valeurs extraites sont des estimations visuelles, pas des données exactes