python - 如何在 html 页面中打印 matplotlib 图
问题描述
我正在尝试在 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 页面中。
提前致谢。
解决方案
一种替代方法是使用类似的东西将matplotlib图保存为图像plt.savefig("/file/path/something.jpg")
,然后像这样引用它,<img src="/file/path/something.jpg" />
因为图本身正在渲染为图形而不是打印语句所在的stdout。
基本上你误解了 stdout 和 figure 之间的区别。Figure 是一个 python 实用程序,它打开一个窗口并显示图像(在本例中为 pyplot 图),而标准输出是 python 代码的文本输出。
mpld3 特定
所以我更多地研究了mpld3。保存和使用 img 实际上并不允许按照您要查找的顺序进行实际集成。它将允许您在网页中显示图表,但会剥夺交互性。我的猜测是,这里真正的问题是 apache 正在查看不同的 python 安装。检查并查看是否在用户或系统级别安装了 mpld3,并查看正在使用哪个 python install apache。
第三个想法
看起来您错误地导入了 mlpd3。根据这个页面,它看起来像你只是import mlpd3
而不是来自 matplotlib。
推荐阅读
- lidar - 用于分析 LiDAR 数据的传统计算机视觉技术
- javascript - chrome扩展弹出窗口是否可以知道它是否是第一次打开?
- anaconda - 在最近的 anaconda 版本(特别是 2019.10)中配置的环境名称的选项卡完成如何?
- python - Chrome T-Rex-Game 强化学习没有改善
- python - 如何使用 python (Django) 将我的图像输出到 html 文档中
- java - 使用 Java Stream 在单个语句中检查 2 个字符串是否有任何共同字符
- finite-automata - 如何找到 NFA 的语言
- node.js - NodeJS:从网络摄像头下载文件->不可读文件
- python - 正则表达式在前瞻中具有多个条件组,也必须在匹配中捕获
- c - 在 C 中关闭监视器