我正在尝试使用mpld3库在我的浏览器上绘制Matplotlib数据。 但是我遇到的问题是出现以下错误:
private void copyFile(File inputPath, File outputPath){ try{ InputStream in = null; OutputStream out = null; try { in = new FileInputStream(inputPath); out = new FileOutputStream(outputPath); byte[] buffer = new byte[1024]; int read; while ((read = in.read(buffer)) != -1) { out.write(buffer, 0, read); } in.close(); in = null; // write the output file (You have now copied the file) out.flush(); out.close(); out = null; Log.d("Copied file to ", outputPath.toString()); } catch (FileNotFoundException fnfe1) { Log.d("Tag",fnfe1.getMessage()); } catch (Exception e) { Log.d("tag", e.getMessage()); } }catch (Exception e){ e.printStackTrace(); } }
这些是我导入的mpld3对象。
if fig.canvas is None: AttributeError: 'list' object has no attribute 'canvas'
这是我的代码,用于将图形保存为HTML。
import matplotlib.pyplot as plt,mpld3
from mpld3 import save_json, fig_to_html, plugins
如果我没有将数据保存在html文件中,我将得到数字。 html文件已创建,但为空,并且控制台上显示“上述错误”。
请帮助。非常感谢您的帮助
答案 0 :(得分:0)
通过遵循文档here,我能够按以下方式将图发送到html文件:
import matplotlib.pyplot as plt,mpld3
from mpld3 import save_json, fig_to_html, plugins, save_html
import numpy as np
X = 'x'
fig, ax = plt.subplots(1, 1, figsize=(8, 2))
ecg = X
fig = plt.figure()
alt = np.arange(len(ecg))/125
lines = ax.plot(alt,ecg)
mpld3.plugins.connect(fig, mpld3.plugins.LineLabelTooltip(lines[0]))
mpld3.fig_to_html(fig)
mpld3.save_html(fig,"test.html")
# mpld3.disable_notebook()
mpld3.show()
您的行
fig=plt.figure()
fig= plt.plot(alt,ecg)
不使用Figure方法,这就是为什么您遇到“画布”错误的原因。
我不确定您的所有数据是什么,您可能不需要使用plugin方法,但是切换保存html的顺序以及将无花果转换为html似乎已经解决了一些问题。
希望这会有所帮助。