我收到TypeError:尝试在Python中保存绘图时,无法将序列乘以'numpy.float64'类型的非整数

问题描述

# This is my code that creates the plot
moving_avg = np.convolve(list_of_results,np.ones((100,)) / 100,mode="valid")
plt.plot([i for i in range(len(moving_avg))],moving_avg)
plt.ylabel('Remaining Pins')
plt.xlabel('Games played')
plt.grid()
plt.savefig('English_10000.pdf',dpi='300')
Traceback (most recent call last):
  File "C:/Users/lovir/Desktop/Backup/project_solitaer/display.py",line 144,in <module>
    plt.savefig('English_10000.pdf',dpi='300')
  File "C:\Users\lovir\env\lib\site-packages\matplotlib\pyplot.py",line 859,in savefig
    res = fig.savefig(*args,**kwargs)
  File "C:\Users\lovir\env\lib\site-packages\matplotlib\figure.py",line 2311,in savefig
    self.canvas.print_figure(fname,**kwargs)
  File "C:\Users\lovir\env\lib\site-packages\matplotlib\backend_bases.py",line 2162,in print_figure
    with cbook._setattr_cm(self,manager=None),\
  File "C:\Users\lovir\AppData\Local\Programs\Python\Python38\lib\contextlib.py",line 113,in __enter__
    return next(self.gen)
  File "C:\Users\lovir\env\lib\site-packages\matplotlib\cbook\__init__.py",line 2079,in _setattr_cm
    setattr(obj,attr,val)
  File "C:\Users\lovir\env\lib\site-packages\matplotlib\figure.py",line 451,in _set_dpi
    self.dpi_scale_trans.clear().scale(dpi)
  File "C:\Users\lovir\env\lib\site-packages\matplotlib\transforms.py",line 1996,in scale
    self._mtx[0,0] *= sx
TypeError: can't multiply sequence by non-int of type 'numpy.float64'

Process finished with exit code 1

如果我使用32位版本的python,则绘图工作正常,但使用咸菜时出现内存错误,因此我切换到64位python。但是现在,当我尝试保存绘图时会出现此错误。

解决方法

阅读 savefig https://matplotlib.org/api/_as_gen/matplotlib.pyplot.savefig.html)的文档。

dpi 参数指定为 float ,而您传递了 string

尝试使用 dpi = 300 (不带撇号)。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...