Python savefig步骤出错:ValueError:无法将浮点NaN转换为整数
我正在尝试创建用于打印多个数据文件的循环Python savefig步骤出错:ValueError:无法将浮点NaN转换为整数,python,matplotlib,Python,Matplotlib,我正在尝试创建用于打印多个数据文件的循环 #!/usr/bin/env python # -*- coding: utf-8 -*- import pandas as pd import numpy as np import matplotlib.pyplot as plt import glob import os pathf1 = r'/home/foo/condt/' allfiles1 = glob.glob(pathf1 + '/*.csv') fig1 = plt.figure
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import glob
import os
pathf1 = r'/home/foo/condt/'
allfiles1 = glob.glob(pathf1 + '/*.csv')
fig1 = plt.figure()
for filee_ in allfiles1:
dfp = pd.read_csv(filee_, sep=',', encoding='utf-8')
ax = plt.subplot(111)
ax.plot(dfp['col3'], dfp['col2'], ls = '-', color='red', marker='x', markersize = 25.0)
ax.errorbar(dfp['col1'], dfp['col2'], yerr=dfp['PN_6_FLUX_ERR'], ls='None', marker = '.')
ax.set_xlim((dfp['col1'].min()-0.1*(dfp['col1'].max()-dfp['col1'].min())), ((dfp['col1'].max()+0.1*(dfp['col1'].max()-dfp['col1'].min()))))
ax.set_ylim((dfp['col2'].min()-dfp['col2'].max()),((dfp['col2'].max()/2.0)+dfp['col2'].max())
ax.grid()
plt.xticks(dfp['col1'])
plt.yticks(dfp['col2'])
plt.xlabel('col1')
plt.ylabel('col2')
plt.title('col1 vs. col2')
filenamee = ''+ str('%02s' %filee_)+'.png'
plt.savefig(filenamee, dpi=600)
plt.clf()
plt.show()
当我运行代码时,我得到以下信息:
plt.savefig(文件名,dpi=600)
ValueError:无法将浮点NaN转换为整数
文件中类似的列
col1 col2 col3
3.39895E-12 52459.7796644
3.62529E-12 52461.7358623
3.67719E-12 52501.6052951
2.26977E-11 56340.081624
3.38851E-11 53574.1580939 53574.1580939
当我从代码中删除记号时,一切都会正常。。。但我需要在我的图表中加上记号。我怎样才能解决这个问题?我找到了解决办法。问题源于
matplotlib
库的版本。我想这是一种虫子。要解决此问题,必须使用下面的terminal命令更新matplotlib\n
库
pip install --upgrade matplotlib_venn
str(“%02s”%filee\ux)的结果是什么?它给出了文件名。像这样,/home/foo/filename1.csv/home/foo/filenamen.csvare你确定吗?“/home/foo/%02s.csv”%(文件名)的结果是什么,你打印了吗?home/foo//home/foo/filename1.csv.png.csv home/foo//filename2.csv.png.csv home/foo//home/foo/filename3.csv.png.csv home/foo//home/foo/filename4.csv.png。home/foo//home/foo/filenamen.csv.png.csv诸如此类。。。这很奇怪。没错,这很奇怪;),用“+str”(“%s02”%filee_u2;)+“.png”试试看