向matplotlib输入任意数量的文件

时间:2012-12-18 18:53:44

标签: python matplotlib

我有以下matplotlib python代码,该代码根据包含x,y值的两列的文件生成一个图:

#!/usr/bin/env python
import string
import pylab
from pylab import *
import sys,os

narg=len(sys.argv)
print narg
if narg != 7:
    print "@Usage: python get_pic.py results_file output_filename xmin xmax ymin ymax"
    sys.exit()

res1 = sys.argv[1] 
res_file_1 = open(res1,"r")
fileoutput = sys.argv[2]
xmin =float( sys.argv[3])
xmax =float( sys.argv[4])
ymin =float( sys.argv[5])
ymax =float( sys.argv[6])


x1=[]
y1=[]

for line in res_file_1.readlines():
    ll=string.split(line)
    x1.append(float(ll[0]))
    y1.append(float(ll[1]))

fig = plt.figure()
ax = fig.add_subplot(111)
# ax.set_yscale('log')
# ax.set_xscale('log')
ax.set_xlabel('NSTEPS')
ax.set_ylabel("RMSD")
ax.set_xlim(xmin,xmax)
ax.set_ylim(ymin,ymax)
ax.plot(x1,y1,color='blue')


pylab.legend((
r'AVERAGE',), shadow = True, loc = 2,numpoints = 1)
ltext = pylab.gca().get_legend().get_texts()
pylab.setp(ltext[0], fontsize = 13)
plt.savefig(fileoutput,dpi=300)
plt.show()

我现在面临的问题是我需要绘制任意数量的文件(从5到50)。我从这个以前的代码开始使用天真的方法,告诉脚本打开5个不同的输入文件等等,但它变得一团糟,需要根据输入文件的数量更改代码,而且,它变得难以处理50个文件。那么,我怎么能最小化修改我以前的代码,以便它可以读取任意数量的文件?

P.S。:我想在同一个图中的所有情节,例如这个example。 P.2.2。:如果连续的图可以随机地或跟随彩虹尺度有不同的颜色。

0 个答案:

没有答案