0

x、y値を持つ2つの列のみを含むファイルからプロットを作成する次のmatplotlib pythonコードがあります:

#!/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