我的代码如下,问题是我得到了242个图形,而不是一个图形。我尝试将
plt.show()
放在循环外面,但没有起作用。import numpy as np
import matplotlib.pyplot as plt
import csv
names = list()
with open('selected.csv','rb') as infile:
reader = csv.reader(infile, delimiter = ' ')
for row in reader:
names.append(row[0])
names.pop(0)
for j in range(len(names)):
filename = '/home/mh/Masters_Project/Sigma/%s.dat' %(names[j])
average, sigma = np.loadtxt(filename, usecols = (0,1), unpack = True, delimiter = ' ')
name = '%s' %(names[j])
plt.figure()
plt.xlabel('Magnitude(average)', fontsize = 16)
plt.ylabel('$\sigma$', fontsize = 16)
plt.plot(average, sigma, marker = '+', linestyle = '', label = name)
plt.legend(loc = 'best')
plt.show()
for i in range(len(xs))
和xs[i]
的方式。应该使用for x in xs:
的方式。 另外一个要点是:为什么要使用这样复杂的方式读取名称?names = np.genfromtxt("selected.csv", delimiter=" ", dtype=np.str, skiprows=1)
- MaxNoe