python 是否有方法将Seborn或matplotlib绘图另存为html字符串/对象?

ar5n3qh5  于 2022-12-10  发布在  Python
关注(0)|答案(1)|浏览(159)

有没有方法可以让我将seborn或matplotlib图表保存为html字符串?我正在尝试将多个(大约20个)图表嵌入到一个自动报告中,该报告将每天通过电子邮件发送出去。我的报告的其他方面都是基于html的。我只是想确认一下,我必须依赖seborn/matplotlib中的图像对象。
我本来是使用Altair并将JSON嵌入到我的电子邮件中的,但是这在任何电子邮件应用程序中都无法呈现,因为大多数电子邮件应用程序都禁用了javascript/css。

lmvvr0a8

lmvvr0a81#

HTML允许您显示任何使用base64编码的图像,请考虑下面的小红点示例

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4
  //8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />

取自How to Display Base64 Images in HTML。在您的情况下,您需要:使用seaborn生成base64编码的PNG图像,您可以按以下方式使用base64

import base64
import seaborn as sns
fig = sns.heatmap([[1,2],[3,4]]).get_figure()
fig.savefig('heatmap.png')
with open('heatmap.png','rb') as f:
    b64data = base64.b64encode(f.read())  # b64data is bytes, use b64data.decode() if you need str

相关问题