在使用matplotlib 保存图像时出现
TypeError: can't multiply sequence by non-int of type 'float'
matplotlib版本:2.2.2
查看matplotlib 版本的方法:python -c "import matplotlib;print(matplotlib.__version__)"
错误原因:
Python35\lib\site-packages\matplotlib\lines.py中的
_scale_dashes(offset, dashes, lw) 函数中的lw传入后是 str类型的,与float类型的数值相乘会报类型错。
解决方法:
目前的做法是修改该文件(如果有更好的方法可以留言):
加入一行代码,将lw强制转换为float类型:lw=float(lw)
def _scale_dashes(offset, dashes, lw): lw= float(lw) if not rcParams['lines.scale_dashes']: return offset, dashes scaled_offset = scaled_dashes = None if offset is not None: scaled_offset = offset * lw if dashes is not None: scaled_dashes = [x * lw if x is not None else None for x in dashes] return scaled_offset, scaled_dashes