Python 我可以在“通过循环打印”中创建多条曲线吗?-e、 如果我想要50条曲线
我在做循环伏安法,在一个文件中接收每个循环的数据。我打开并读取目录中的每个文件,并将数据放入一个列表中,其中包含一个特定变量的每个周期的列表。这不是问题,工作正常。(我添加了代码,以防有人发现它有用) 我的问题是,我想在同一个图表上绘制每个周期,但要巧妙地使用循环,而不是像我所做的那样手动绘制每个周期。有人有好主意吗?我尝试过不同的方法,但我甚至不能在循环中绘图 用PythonPython 我可以在“通过循环打印”中创建多条曲线吗?-e、 如果我想要50条曲线,python,matplotlib,plot,re,Python,Matplotlib,Plot,Re,我在做循环伏安法,在一个文件中接收每个循环的数据。我打开并读取目录中的每个文件,并将数据放入一个列表中,其中包含一个特定变量的每个周期的列表。这不是问题,工作正常。(我添加了代码,以防有人发现它有用) 我的问题是,我想在同一个图表上绘制每个周期,但要巧妙地使用循环,而不是像我所做的那样手动绘制每个周期。有人有好主意吗?我尝试过不同的方法,但我甚至不能在循环中绘图 用Python import re import matplotlib.pyplot as plt import os def C
import re
import matplotlib.pyplot as plt
import os
def CreateData(Directory):
assert os.path.isdir(Directory), "Not a directory" # Test whether argument given is an actual directory
cycleE, cycleI = [], [] # empty list
directory = os.fsencode(Directory) # encode pathlike filename (define directory)
for file in os.listdir(directory): # Loop through directory
filename = os.fsdecode(file) # Decode pathlike filename (Define filename)
filename = Directory + '\\' +filename # Make sure filename is pathlike
E, I = [], [] # Create empty E and I for each cycle file
with open(filename, 'r') as f: # open file
for _ in range(2): # Loop over first two lines
next(f) # Remove lines looped
for line in f: # Loop through file
f = re.findall(r'(\S+)', line) # Create list ['E', 'I']
E.append(float(f[0])) # Isolate E in list
I.append(float(f[1])*1000000) # Isolate I in list
cycleE.append(E) # Create list cycle [E1, E2, E3, ..]
cycleI.append(I) # Create list cycle [I1, I2, I3, ..]
return [cycleE, cycleI] # return List of each cycle list
data = CreateData('Pt(15 15 14)')
fig, ax = plt.subplots(1)
ax.plot(data[0][0], data[1][0], 'r-', linewidth=.2, label='Cycle 1')
ax.plot(data[0][1], data[1][1], 'k-', linewidth=.6, label='Cycle 2-4')
ax.plot(data[0][2], data[1][2], 'k-', linewidth=.4)
ax.plot(data[0][3], data[1][3], 'k-', linewidth=.2)
ax.plot(data[0][4], data[1][4], 'b-', linewidth=.8, label='Cycle 5-9')
ax.plot(data[0][5], data[1][5], 'b-', linewidth=.6)
ax.plot(data[0][6], data[1][6], 'b-', linewidth=.4)
ax.plot(data[0][7], data[1][7], 'b-', linewidth=.2)
ax.plot(data[0][8], data[1][8], 'c-', linewidth=.8, label='Cycle 10-13')
ax.plot(data[0][9], data[1][9], 'c-', linewidth=.6)
ax.plot(data[0][10], data[1][10], 'c-', linewidth=.4)
ax.legend()
ax.set_ylabel('i / \u03BCA ', fontsize=15)
ax.set_xlabel('E vs RHE/ V', fontsize=15)
plt.show()
只需在范围(0,10)内使用循环
,
并在内部添加绘图,然后将plt.show()放置在外部谢谢!我早些时候试过,但没用。。我可能还做错了什么我想我太快忽视了它