web-dev-qa-db-fra.com

Avec Bokeh, comment enregistrer au format png ou jpg au lieu d'un fichier html?

J'ai besoin d'exporter des images des graphiques et des tracés que je crée avec Bokeh.

Habituellement je fais

output_file("test.html")

Cependant, je veux copier ce graphique dans une feuille Excel. Il ne doit plus être interactif, mais ce serait brillant. Comment exporter le graphique en tant qu'image? En utilisant du code, pas en cliquant sur "prévisualiser/enregistrer".

23
user2366975

À partir de Bokeh 0.12.6, il est désormais possible d'exporter PNG et SVG directement depuis Python.

L'exportation de fichiers PNG ressemble à ceci

export_png(plot, filename="plot.png")

Et l'exportation de SVG ressemble à ceci

plot.output_backend = "svg"
export_svgs(plot, filename="plot.svg")

Certaines dépendances facultatives doivent être installées. Vous pouvez trouver plus d'informations dans la section Exportation de tracés du Guide de l'utilisateur .

14
Optional Argument

Alternativement, si vous souhaitez travailler avec JavaScript. Et, par exemple, si vous souhaitez enregistrer plusieurs canevas (chaque élément canevas a un tracé) en même temps, vous pouvez utiliser la méthode JavaScript canvas.toDataUrl() pour convertir le canevas en png en base64. Lorsque vous obtenez toutes les images, vous pouvez en faire ce que vous voulez. Ces images ont 96 dpi et ne peuvent pas être modifiées, donc si vous voulez plus de résolution, vous devrez également mettre à jour les tailles de tous les éléments du tracé avant la conversion: polices, axe, taille du tracé ...

Si vous utilisez cette approche, vous n'avez pas besoin d'installer les dépendances Selenium et phantomjs dans votre environnement python.

Sachez également que si vous utilisez export_png et vous exportez l'intrigue avec une taille plus grande, l'axe et les polices ne seront pas proportionnellement plus grands

0
ChesuCR