mpld3错误:AttributeError:“列表”对象没有属性“画布”

时间:2019-08-09 08:53:43

标签: python html python-3.x matplotlib mpld3

我正在尝试使用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文件已创建,但为空,并且控制台上显示“上述错误”。

请帮助。非常感谢您的帮助

这是该图的样子。 enter image description here

1 个答案:

答案 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似乎已经解决了一些问题。

希望这会有所帮助。