繁体   English   中英

我如何在 Python 的 for 循环中的同一张图上 plot 多条线?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM