Project

Data Visualization Python

The following script reads the data of the given file saved under the name \'engine_data.out.txt\', and plots the graps of respective variable and save them under tne name extracted from the file. Then it asks the user whether to show single variable plot or double variable plot and respectively shows the plot.

import numpy as np 
from scipy.optimize import *
import matplotlib.pyplot as plt 
import matplotlib


col = []
title= []
c_1 = [];c_2 = [] 
c_3 = [];c_4 = [];c_5 = [];c_6 = [];c_7 = [];c_8 = [];c_9 = [];c_10 = [];c_11 = [];c_12 = [];c_13 = [];c_14 = [];c_15=[];c_16=[];c_17=[];
i = 1
f = open('engine_data.out.txt','r')
for line in f:
	line = line.split()
	if 'column' in line:
		for x in line:
			if x != '#':
		 		col.append(x)
	if 'Crank' in line:
		for x in line:
			title.append(x)
	
	if '#' not in line:
		if len(line) != 17:
			print(error)
			break
		line = np.array(line, dtype = float)
		c_1.append(line[0])
		c_2.append(line[1])
		c_3.append(line[2])
		c_4.append(line[3])
		c_5.append(line[4])
		c_6.append(line[5])
		c_7.append(line[6])
		c_8.append(line[7])
		c_9.append(line[8])
		c_10.append(line[9])
		c_11.append(line[10])
		c_12.append(line[11])
		c_13.append(line[12])
		c_14.append(line[13])
		c_15.append(line[14])
		c_16.append(line[15])
		c_17.append(line[16])

		i = i +1 ;

	if 'column'  in line:
		line = f.readline()
		line = line.split()
		label = []
		for x in line:
			label.append(x)
c = np.array([[0],c_1,c_2,c_3,c_4,c_5,c_6,c_7,c_8,c_9,c_10,c_11,c_12,c_13,c_14,c_15,c_16,c_17])

for x in range(1,18):
	plt.figure(x)
	plt.plot(c[x])
	plt.ylabel(label[x])
	plt.savefig(label[x] + '.png')
	plt.close()

print('Press y to see single column plot or n to see double column plot')
z = input()
z = str(z)
if z == 'y':
	print('enter the col no. to plot{1-14}')
	j = input()
	j = int(j)
	plt.figure()
	plt.plot(c[j])
	plt.ylabel(label[j])
	plt.show()
if z == 'n':
	print('enter x-axis column no.{1-14}')
	x = input()
	x = int(x)
	print('enter y-axis column no.{1-14}')
	y = input()
	y = int(y)
	plt.figure()
	plt.plot(c[x],c[y])
	plt.xlabel(label[x])
	plt.ylabel(label[y])
	plt.show()

#Area under the P-V graph
area = np.trapz(c[2],c[8])
print('The area under the P-v Graph  is  ',area*1000,'Kj' )
print('Power output is ',area*1000*1500*60,'Kj/s')
power = area*1000*1500/60
sfc = (20/1000000)/power
print('the specific fuel consumption is ',sfc,'Kg/KWHs')
print('enter any value to terminate')
zz = input()

The plot of single variable vs iteration is given below:

https://drive.google.com/open?id=1CQ49GwSZq99DVt9gDaPf1RDjdkUiq8iI

The plot of P-V graph is givn below:

The area under the P-V graph is .5 Kj;

Power output is 45052.7964 Kj/s;

Specific Fuel Consumption is .00159 Kg/KWH

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.