Files
CFDEMcoupling-PFM/applications/utilities/vizClock/matPlot.py
2012-07-17 15:56:10 +02:00

69 lines
1.4 KiB
Python

#!/usr/bin/env python
import csv, sys
import numpy as np
import matplotlib.pyplot as plt
# Open the data
datafile = "timeEvalFull.txt"
f = open(datafile, 'r')
reader = csv.reader(f, dialect='excel-tab')
reader.next()
header = []
identifier = []
deltaT = []
maxdeltaT = []
nOfRuns = []
level = []
parentNr = []
parentName = []
i = 0
for row in reader:
if i == 0:
for column in row:
header.append(column)
print header
else:
identifier.append(row[0])
deltaT.append(float(row[1]))
maxdeltaT.append(float(row[2]))
nOfRuns.append(int(row[3]))
level.append(int(row[4]))
parentNr.append(int(row[5]))
parentName.append(row[6])
i+=1
bottom = []
childheight = []
for i in range(len(identifier)):
bottom.append(0)
childheight.append(0)
levelZero = 0.0
#loop levels
for j in range(len(identifier)):
#loop indices
for i in range(len(identifier)):
if level[i] == j:
if parentNr[i] != -1:
bottom[i] = bottom[parentNr[i]] + childheight[parentNr[i]]
childheight[parentNr[i]] += deltaT[i]
else:
bottom[i] = levelZero
levelZero += deltaT[i]
#Output
for i in range(len(identifier)):
plt.bar(level[i],deltaT[i],width = 0.2, bottom=bottom[i])
plt.text(level[i]+0.22,bottom[i]+deltaT[i]/2,identifier[i]+" "+str(nOfRuns[i])+"x",verticalalignment='center')
plt.xlabel('run level')
plt.ylabel('CPU time in s')
plt.title('time measurement')
plt.show()