[英]How can I plot multiple lines on the same graph in a for loop in Python?
我正在尝试分析来自 Python 上 5 个 excel 文件的数据(同一测试的重复)。 我创建了一个 for 循环来:读取每个文件,执行必要的操作,plot 第 3 列(“DMS1 %”)与第 6 列(“压力 MPa”)。 我想在我的 for 循环结束时获得一个图形,所有行都在同一个 plot 上,每个文件一个。 但是,在运行我的代码时,会创建 5 个不同的图。
到目前为止,这是我的代码:
import pandas as pd
import openpyxl as xl
import functions
import numpy as np
import matplotlib.pyplot as plt
from pathlib import Path
path = Path(r'C:\Users\Test Python')
for count,file in enumerate(path.glob('*DMS.csv')):
print(file)
# obtain file
df = pd.read_csv(file, sep=";", usecols=[0, 1, 2, 3])
# obtain correct diameter and calculate area
diameter_wb = xl.load_workbook(r'C:\Users\Diameters.xlsx')
sheet = diameter_wb['Sheet1']
diameter = sheet.cell(count+2, 2).value
area_tendon = functions.area(diameter) # calculate are of tendon
# calculate stress
df["Stress MPa"] = functions.stress(area_tendon, df.iloc[:]['Kraft kN'])
# calculate Modulus of elasticity (for DMS)
df['Modulus of Elasticity MPa'] = df.iloc[:]['Stress MPa']/df.iloc[:]['DMS1 %']*10**-2
df.plot("DMS1 %", "Stress MPa")
plt.show()
“DMS1 %”是原始 excel 文件中的一列。 “应力 MPa”是在 for 循环中创建的列。
如果在循环的每次迭代中,您将需要呈现的列存储在 dataframe 中。
columns = ['column_1', 'column_2', 'column_3', 'column_4', 'column_5']
df_visual = pd.DataFrame()
for count, file in enumerate(path.glob('*DMS.csv')):
...
df_visual[columns[count]] = ...
那么一张图表上的plot几条线,可以使用:
df_visual.plot.line('column_1', 'column_2', 'column_3', 'column_4', 'column_5')
plt.show()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.