Bonjour à tous,

Travaillant sur Matplotlib depuis peu, j'aimerais exporter un dataframe en png pour pouvoir l’implémenter dans un rapport PDF avec la librairie reportlab.

Après quelques recherches, j'ai réussi à exporter un dataframe en .html avec une visibilité très correcte, mais impossible pour autant de l'importer dans ce format dans reportlab. J'ai donc cherché un moyen de convertir un .html en .png avec la librairie imgkit, mais une erreur m'empêche d’exécuter le programme.

Voici mon code, qui exporter un group by en html, mais qui bug dès qu'il faut convertir le résultat en .png avec "imgkit.from_file('filename.html', 'out.jpg')"

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
import matplotlib.pyplot as plt
import pandas as pd
from pandas.plotting import table 
from subprocess import call
import seaborn as sns
import imgkit
import numpy as np
 
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar','foo', 'bar', 'foo', 'foo'], 'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'], 'C': np.random.randn(8),'D': np.random.randn(8)})
a_exporter = df.groupby('A').sum()
 
 
a_exporter.to_html('table.html')
imgkit.from_file('filename.html', 'out.jpg')
Je rencontre une erreur visiblement courante sur internet. Voici un extrait :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
Information■: impossible de trouver des fichiers pour le(s) mod■le(s) sp■cifi■(s).
Information■: impossible de trouver des fichiers pour le(s) mod■le(s) sp■cifi■(s).
Traceback (most recent call last):
  File "C:\Users\Kevin\AppData\Local\Programs\Python\Python38\lib\site-packages\imgkit\config.py", line 30, in __init__
    with open(self.wkhtmltoimage):
FileNotFoundError: [Errno 2] No such file or directory: b''
If this file exists please check that this process can read it. Otherwise please install wkhtmltopdf - http://wkhtmltopdf.org
edit : J'ai installé wkhtmltopdf, mais l'erreur est la même.

Existe t-il une alternative ?

Merci.