使用 mpld3 将图形保存到 .html

Saving graphs to .html using mpld3

我正在尝试使用 seaborn 和 mpld3 在 .html 文件中显示图表。当我使用命令 mpld3.show() 时,会弹出一个新的 window 并且图表会显示在创建的本地网络服务器中(如文档所述)。但是,当尝试将其保存在 .html 文件中时,图形变为空,但我可以看到一些图标,例如移动和缩放可用....

mpld3.show()

sns.set(style="whitegrid")
sns.barplot(x=df.index.tolist(), y=df['Salário'])
mpld3.show()

画出它应该是怎样的:

正在尝试使用 save_html() 保存到 .html 文件:

sns.set(style="whitegrid")
sns.barplot(x=df.index.tolist(), y=df['Salário'])
fig = plt.figure()
mpld3.save_html(fig, "./templates/graph_exp.html")

带有工作图标的错误图表

谁能帮我把这张图保存到 .html 文件后显示正常? :)

我不确定 save_html() 是如何工作的,但这是我在我的烧瓶网站上使用的。

如果您不需要保存图像,此解决方案有效。

import base64
import io


pngImage = io.BytesIO()
FigureCanvas(fig).print_png(pngImage) #fig is my matPlotlib instance of Figure()

# Encode PNG image to base64 string
image = "data:image/png;base64,"
image += base64.b64encode(pngImage.getvalue()).decode('utf8')

然后在 html 中使用:

<img src="{{image}}">