Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我可以在“通过循环打印”中创建多条曲线吗?-e、 如果我想要50条曲线_Python_Matplotlib_Plot_Re - Fatal编程技术网

Python 我可以在“通过循环打印”中创建多条曲线吗?-e、 如果我想要50条曲线

Python 我可以在“通过循环打印”中创建多条曲线吗?-e、 如果我想要50条曲线,python,matplotlib,plot,re,Python,Matplotlib,Plot,Re,我在做循环伏安法,在一个文件中接收每个循环的数据。我打开并读取目录中的每个文件,并将数据放入一个列表中,其中包含一个特定变量的每个周期的列表。这不是问题,工作正常。(我添加了代码,以防有人发现它有用) 我的问题是,我想在同一个图表上绘制每个周期,但要巧妙地使用循环,而不是像我所做的那样手动绘制每个周期。有人有好主意吗?我尝试过不同的方法,但我甚至不能在循环中绘图 用Python import re import matplotlib.pyplot as plt import os def C

我在做循环伏安法,在一个文件中接收每个循环的数据。我打开并读取目录中的每个文件,并将数据放入一个列表中,其中包含一个特定变量的每个周期的列表。这不是问题,工作正常。(我添加了代码,以防有人发现它有用)

我的问题是,我想在同一个图表上绘制每个周期,但要巧妙地使用循环,而不是像我所做的那样手动绘制每个周期。有人有好主意吗?我尝试过不同的方法,但我甚至不能在循环中绘图

用Python

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()放置在外部谢谢!我早些时候试过,但没用。。我可能还做错了什么我想我太快忽视了它