python - 使用 base64 将 matplotlib 绘图保存到 html doc
问题描述
我需要一些帮助,不知道去哪里找。将 python 与 matplotlib 一起使用,我使用 matplotlib.pyplot.savefig 生成一些绘图到 BytesIO() 对象,然后将其更改为 tempfile 对象以查看它是否有效。我应该使用 savefig 将它们保存到任何地方的 png 文件中,它可以工作。我应该从 BytesIO 或 tempfile 中获取数据并将其保存到可以工作的 png 中。但我想把它们放在一个 HTML 文档中,就像这样
print(plots)
for i, f in enumerate(plots):
f.seek(0)
html += """<div style="text-align: center">
<img style="max-width:100%" src=\"data:image/png;base64,{}\">
""".format(base64.b64encode(f.read()))
它可以很好地生成文件,并且 base64 清楚地填充了数据,但是我所有的浏览器都将图像视为损坏。关键是这曾经在 python 2.7 中工作,现在它没有,没有明显的错误。
解决方案
我似乎已经解决了这个问题:这是因为 base64 图像是一个字节对象
base64.b64encode(f.read()).decode("UTF-8")
而不是
base64.b64encode(f.read())
似乎可以正常工作。因此,这个答案可能不太理想。向向我指出这一点的某个匿名者大喊。
推荐阅读
- reactjs - 为什么 create-react-app 现在要为 App 使用一个函数组件?
- javascript - 用于计算一长串数字同时排除文本输入的计算器
- android - ListAdapter 网络调用从服务器下载文件并使用 WorkManager 显示进度
- apache-spark - 如何用 Spark sql 中的一些默认值替换空白列值
- c# - 以完全权限删除文件夹
- bash - 通过读取实用程序将 netcat 命令的输出传递给变量或管道
- c# - Azure 未在发布 EFCore 2 应用程序时创建数据库架构
- python - Scrapy将产量合并到相同的包中
- python - 如何让用户在 Pymongo 中输入值?
- c# - 在 Office 365 上使用 ExchangeService 创建新任务