在matplotlib.pyplot.savefig()filename参数中使用字符串格式获取ValueError

时间:2016-02-04 21:47:04

标签: python string matplotlib format

为什么我在matplotlib.pyplot中得到一个ValueError?这是我的代码:

import matplotlib.pyplot as plt

plt.plot([1,2,3,4,5,6])
f = 1.234
s = "number %i" % f
print s
plt.savefig(s)
到目前为止一切顺利。该图保存到名称为1的文件中(f的整数部分) 但是如果我这样做的话。

plt.plot([1,2,3,4,5,6])
f = 1.234
s = "number %.2f" % f
print s
plt.savefig(s)

print语句按预期打印1.234,而plt.savefig给出:

  

ValueError:不支持格式“23”。支持的格式:eps,   jpeg,jpg,pdf,pgf,png,ps,raw,rgba,svg,svgz,tif,tiff。

以某种方式,savefig()方法将字符串格式与文件格式混合以进行保存。我正在使用matplotlib 1.5.1运行python 2.7

1 个答案:

答案 0 :(得分:3)

plt.savefig尝试根据文件扩展名猜测所需的文件格式。 如果无法识别扩展名,则会出现ValueError。

您可以更改文件名以包含可识别的文件扩展名,也可以包含format参数:

plt.savefig(s, format='png')