1

enter image description hereenter image description hereenter image description hereenter image description hereLets say I have multiple csv files for test_suites UPT_Synergy_graph22.csv, UPT_C7000_graph22.csv, SAT-Synergy-gen2_graph22.csv, like this i have 10 more csv files, which are having the same columns in all the files -build_id and pass percent. I need to plot the line graph for all those files. where build id is x-axis and pass-percent is y-axis. I need to get line graph for each csv file (mean for each test suite).

I was able to get the graph for only one csv file, i am not able to fetch the results for all.

please help me to resolve this. below is the code i have used. or suggest me with any other module that can fit.

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()}

1 Answers1

0
  • Answering: I need to plot the line graph for all those files. where build id is x-axis and pass-percent is y-axis.
  • This code will do the following:
    • Create a list of the pertinent files
    • Iterate through each file
      • Create a dataframe
      • Plot the two specified columns from the dataframe with a label
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
Trenton McKinney
  • 56,955
  • 33
  • 144
  • 158