Em nossos artigos anteriores, vimos como criar gráficos no QGIS usando o Data Plotly. Hoje, vamos dar um passo adiante: automatizar a geração de um gráfico por intervalo (ou qualquer outra entidade), exportando os resultados na forma de imagens PNG, prontas para serem inseridas em um relatório.
E a boa notícia é que não há necessidade de codificar um plug-in, vamos usar o console Python do QGIS, com pandas e plotly.
Objetivo
Criar automaticamente :
- Um gráfico por intervalo, mostrando a quantidade de resíduos por tipo
- Um arquivo de imagem PNG por gráfico
- Sem cliques repetidos ou manipulação manual
Exemplo usado
Temos uma camada de dados de lixo de praia, com os seguintes campos:
- beach: nome da praia
- waste_type: tipo (plástico, metal, etc.)
- quantity: número de objetos registrados

O script Python no QGIS
Aqui está um script que pode ser copiado para o console Python do QGIS:
import os
import pandas as pd
import plotly.express as px
# Dossier de sortie
output_folder = "C:/temp/export_graphiques"
os.makedirs(output_folder, exist_ok=True)
# Couche active
layer = iface.activeLayer()
# Extraction des données
data = []
for f in layer.getFeatures():
data.append({
"plage": f["plage"],
"type_dechet": f["type_dechet"],
"quantite": f["quantite"]
})
# Convertir en DataFrame
df = pd.DataFrame(data)
# Générer un graphique par plage
for plage, group in df.groupby("plage"):
fig = px.bar(
group,
x="type_dechet",
y="quantite",
title=f"Déchets par type – {plage}",
labels={"quantite": "Quantité", "type_dechet": "Type de déchet"},
color="type_dechet"
)
fig.update_layout(showlegend=False)
fig.write_image(os.path.join(output_folder, f"graph_{plage}.png"))
print("✅ Graphiques exportés dans :", output_folder)
Pré-requisitos
Para que o script funcione, verifique se :
- Seu ambiente QGIS Python contém pandas, plotly e kaleido
- Caso contrário, você pode instalá-los por meio do prompt de comando:
- C:\OSGeo4W\OSGeo4W.bat > python3 -m pip install pandas plotly kaleido
Personalizar
Você pode alterar :
- O campo de agrupamento (“range”) para plotar por município, data etc.
- O tipo de gráfico: use px.pie, px.line, px.histogram, etc.
Resultados esperados
No seu arquivo, você obterá :
graph_Anse_Mourouk.png
graph_Pointe_Coton.png
graph_Graviers.png
...

Cada imagem corresponde a um intervalo, com um gráfico claro pronto para ser inserido em um relatório ou atlas.
Se você modificar o código para produzir gráficos de pizza:
import plotly.express as px
import os
for plage, group in df.groupby("plage"):
fig = px.pie(
group,
names="type_dechet", # valeurs catégorielles
values="quantite", # valeurs quantitatives
title=f"Répartition des déchets – {plage}",
color="type_dechet"
)
fig.update_traces(textposition='inside', textinfo='percent+label')
fig.write_image(os.path.join(output_folder, f"graph_{plage}.png"))
Você obtém:

Em resumo
Embora o Data Plotly seja útil para criar gráficos no QGIS, ele não pode ser programado em Python. Entretanto, ao extrair os dados e usar o plotly, você se beneficia do :
- controle total
- um script reutilizável
- visuais profissionais.
Em breve…
Em um artigo futuro, veremos como integrar automaticamente esses gráficos em um Atlas do QGIS, para criar relatórios em PDF totalmente personalizados.