0

我有以下 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 个文件。那么,我怎样才能最小限度地修改我以前的代码,以便它可以读取任意数量的文件呢?

PS:我想要同一个图中的所有图,例如这个例子。PS2.:另外,如果连续的地块可以随机具有不同的颜色或遵循彩虹比例。

4

0 回答 0