python - 如何将python图直接输出到html网页中

标签 python html pandas graph

我正在使用 pandas 和 numpy 等不同的库来生成数据框,最终生成图形。

现在,我需要将此图表显示到一个简单的 HTML 网页中。

注意:我也愿意在 HTML 页面中从用户那里获取 2-3 个输入,然后将该数据传递到我的 python 文件。之后,python 文件根据给定的数据(来自 HTML 页面)生成一个图表,我需要将该图表传递给 HTML 页面。

df[[main_data]].plot()

这里,main_data 是变量,其值来自 HTML 页面。我正在 SPYDER 中编写 python 代码。 而且我没有使用任何框架。

最佳答案

这在某种程度上取决于您将图表显示为 html 的含义。我可以看到几种方法,第一种也是最简单的方法是将图形保存为 PNG,然后在 html 中提供文件的路径:

Python代码:

import pandas as pd
import matplotlib.pyplot as plt

s = pd.Series([1, 2, 3])
fig, ax = plt.subplots()
s.plot.bar()
fig.savefig('my_plot.png')

HTML:

<img src='my_plot.png'/>

第二种方法是将图形编码为 base64。这具有可移植性的优点,以及制作非常笨重的 html 文件的缺点。我不是网络程序员,因此可能还有其他我不知道的注意事项。

python :

import io
import base64

def fig_to_base64(fig):
    img = io.BytesIO()
    fig.savefig(img, format='png',
                bbox_inches='tight')
    img.seek(0)

    return base64.b64encode(img.getvalue())

encoded = fig_to_base64(fig)
my_html = '<img src="data:image/png;base64, {}">'.format(encoded.decode('utf-8'))

my_html 可以传递到您的 html 文件中,或者您可以使用 jinja2 或任何您使用的方式注入(inject)它。这是关于在 html 中查看 base64 的 SO 帖子 https://stackoverflow.com/a/8499716/3639023并将图像编码为 base64 How to convert PIL Image.image object to base64 string?

关于python - 如何将python图直接输出到html网页中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49015957/

相关文章:

python - 如何在Python中创建具有两列作为元组或Pandas数据框的单个变量?

html - 菜单下拉不适用于 Internet Explorer

python - 如何获得数据框中低于特定阈值的最小值?

python - 将 excel 的值作为 python 字典检索

python - 如何将一个数据框转换为另一个数据框

python - 没有这样的文件或目录错误(python)

python - 如何优雅地退出使用 twistd 启动的应用程序?

python - 这个正则表达式是否意味着它必须以 A 开头,以 Z 结尾?研究 "\A[0-9A-Za-z_-]+\Z"

javascript - 在单击单个元素时切换增量和减量计数

c# - 无法在 SignalR Send 中将 Viewbag 作为参数发送