【问题标题】:how to print matplotlib plot in a html page如何在 html 页面中打印 matplotlib 图
【发布时间】:2018-05-25 12:53:56
【问题描述】:

我正在尝试在 HTML 页面 (python -cgi) 中使用 Matplotlib 绘制堆叠图。我有以下脚本

`#!/usr/bin/python 
print "Content-type:text/html\r\n\r\n"
print '<html>'
print '<head>'
print '<title>Hello Word - First CGI Program</title>'
print '</head>'
print '<body>'
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt, mpld3
data = {'title1': {'SA':20, 'TA':10}, 'title2':{'FA':10, 'MA':20, 
'NA':30}}
grap=pd.DataFrame(data).T.plot(kind='bar', stacked=True,figsize= . 
(16,18))
mpld3.fig_to_html(grap)
print '</body>'
print '</html>'`

但是,当我尝试在网络浏览器中打开脚本时,它显示错误。如果我删除“import mpdl3”,脚本可以工作,但看不到图像。

任何人都可以帮助如何将绘图嵌入到 html 页面中。

提前致谢。

【问题讨论】:

  • 如果这是为了经常使用并且你会做很多事情,你应该考虑设置和学习 Django。我们一直使用它来将 matplotlib 绘图渲染到网页。

标签: python html mpld3


【解决方案1】:

另一种方法是使用plt.savefig("/file/path/something.jpg") 之类的东西将matplotlib 图保存为图像,然后像&lt;img src="/file/path/something.jpg" /&gt; 那样引用它,因为图本身正在渲染为图形而不是打印语句所在的stdout去。

基本上你误解了 stdout 和 figure 之间的区别。 Figure 是一个 python 实用程序,它打开一个窗口并显示图像(在本例中为 pyplot 图),而标准输出是 python 代码的文本输出。

mpld3 特定

所以我更多地研究了 mpld3。保存和使用 img 实际上并不允许按照您要查找的顺序进行实际集成。它将允许您在网页中显示图表,但会剥夺交互性。我的猜测是,这里真正的问题是 apache 正在查看不同的 python 安装。检查并查看是否在用户或系统级别安装了 mpld3,并查看正在使用哪个 python install apache。

第三个想法

您似乎错误地导入了 mlpd3。根据this 页面,看起来你只是import mlpd3 而不是来自matplotlib。

【讨论】:

  • 非常感谢..它有效..有没有办法使用mpld3..当我在apache服务器上使用和运行时它显示错误..
  • 我可以知道如何标记栏内的键.. 例如。 SA 必须打印在栏内
  • @Sam 这是一个单独的问题,如果您环顾四周,会有关于如何标记图表的文档和问题。我对 mpld3 的猜测是,您没有将它安装在与 apache 服务器使用的终端相同的 python 位置/会话中。这只是一个猜测......当导入失败时它到底打印了什么?
  • 嗨福特。我已经更正了 mlpd3,但仍然出现以下错误:服务器错误!服务器遇到内部错误,无法完成您的请求。 Error message: End of script output before headers: Interaction.py 如果您认为这是服务器错误,请联系站长。错误 500
  • 然而,当我在网上搜索时,它被称为 mpld3。你能告诉我如何检查它是否安装在用户级别。我搜索了网页,但找不到任何有关如何操作的信息。
猜你喜欢
  • 1970-01-01
  • 2012-04-07
  • 2020-06-28
  • 1970-01-01
  • 1970-01-01
  • 2019-07-09
  • 2011-11-01
  • 1970-01-01
  • 2023-04-04
相关资源
最近更新 更多