使用 mpld3 输出居中的 HTML 图像

Output a centred HTML image with mpld3

我正在使用 mpld3 Python 包将静态 matplotlib 图形保存为 html 格式的交互式图像。一个简单的例子如下:

# draw a static matplotlib figure
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = plt.axes()
x = np.linspace(0, 10, 1000)
ax.plot(x, np.sin(x))

# save as an interactive html file
import mpld3

html_str = mpld3.fig_to_html(fig)
Html_file= open("sample.html","w")
Html_file.write(html_str)
Html_file.close()

但问题是在浏览器中打开html图片时,它总是在左上角。有没有办法让它居中甚至更好地控制输出样式?

mpld3.fig_to_html()只是生成了html的一个片段。尽管该片段单独可以用作 html 文档,但它应该被嵌入到完整的 html 文档中。

下面是使用 figid 选项为生成的片段指定 ID fig1 的解决方案示例。正在为具有 ID fig1<div> 准备具有 CSS 样式定义的 html 文档。并将片段嵌入到文档中。

html_fragment = mpld3.fig_to_html(fig, figid = 'fig1')

html_doc = f'''
<style type="text/css">
div#fig1 {{ text-align: center }}
</style>

{html_fragment}
'''

Html_file= open("sample.html","w")
Html_file.write(html_doc)
Html_file.close()