【问题标题】:how to get the line graph for the multiple csv files using python?如何使用python获取多个csv文件的折线图?
【发布时间】:2020-07-02 01:13:08
【问题描述】:

在此处输入图像描述假设我有多个用于 test_suites UPT_Synergy_graph22.csv、UPT_C7000_graph22.csv、SAT-Synergy-gen2_graph22.csv 的 csv 文件,像这样我还有 10 个 csv 文件,在所有文件 -build_id 和通过百分比中具有相同的列。我需要为所有这些文件绘制折线图。其中 build id 是 x 轴,pass-percent 是 y 轴。我需要为每个 csv 文件获取折线图(每个测试套件的平均值)。

我只能获取一个 csv 文件的图表,我无法获取所有文件的结果。

请帮我解决这个问题。下面是我使用的代码。或者建议我使用任何其他适合的模块。

import pandas as pd
import pygal
from pygal.style import Style

data_frame=pd.read_csv('C:\\Users\\shivarad\\Documents\\Scale_graph22.csv', dtype={"Pass 
Percentage":int,"original_pass_percent":int})

a = []
b = []

line_chart=pygal.Line()

#line_chart.title='Graphical Representation of the pass percentage for a build ID---TEST SUITE: SCALE'
line_chart.x_labels=data_frame['build ID']
for index,row in data_frame.iterrows():
  a.append(row["Pass Percentage"])
  b.append(row["original_pass_percent"])

line_chart.add("Pass Percentage",a)
line_chart.add("original_pass_percent",b)
line_chart.render_in_browser()

#bar_chart.title='Graphical Representation of the pass percentage for a build ID---TEST SUITE: SCALE'
bar_chart = pygal.stackedBar(height=360, width=440,explicit_size=True)
bar_chart.title='Graphical Representation of the pass percentage for a build ID---TEST SUITE: SCALE'
bar_chart.x_labels=data_frame['build ID']
for index,row in data_frame.iterrows():
   a.append(row["Pass Percentage"])
   b.append(row["original_pass_percent"])
# adding the apeended list 
bar_chart.add('Pass Percentage', a)
bar_chart.add('original_pass_percent', b)

# rendering  the file
bar_chart.render_in_browser()}

【问题讨论】:

    标签: python pandas csv pygal


    【解决方案1】:
    • 回答:我需要为所有这些文件绘制折线图。其中build id 是 x 轴,pass-percent 是 y 轴。
    • 此代码将执行以下操作:
      • 创建相关文件列表
      • 遍历每个文件
        • 创建数据框
        • 使用标签绘制数据框中的两个指定列
    import pandas as pd
    import matplotlib.pyplot as plt
    from pathlib import Path
    %matplotlib inline  
    
    # graphing parameters
    plt.style.use('seaborn')
    plt.rcParams['figure.figsize'] = (16.0, 10.0)
    
    p = Path(r'c:\Users\shivarad\Documents')  # path to files
    files = list(p.rglob('*graph22.csv'))  # get files
    
    # everything for here down, belongs in one Jupyter cell
    plt.figure()
    for f in files:  # iterate through files
        file_name = f.stem  # get filename
        df = pd.read_csv(f, dtype={'Pass Percentage': int, 'original_pass_percent': int})  # create dataframe
    
        print(df.head())  # this is here to verify df has data; it can be commented out or removed
        
        plt.plot('build ID', 'Pass Percentage', data=df, label=file_name)  # plot the data from each file
    
    plt.legend(bbox_to_anchor=(1.04, 0.5), loc='center left')
    plt.savefig('test.jpg')  # verify there's plot in the file
    plt.show()  # outside the loop
    

    【讨论】:

      猜你喜欢
      • 2020-10-30
      • 2017-10-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-19
      • 1970-01-01
      • 2019-11-04
      • 2020-01-23
      • 2023-03-09
      相关资源
      最近更新 更多