| Server IP : 172.64.80.1 / Your IP : 108.162.216.213 Web Server : Apache System : Linux mail.federalpolyede.edu.ng 5.10.0-32-amd64 #1 SMP Debian 5.10.223-1 (2024-08-10) x86_64 User : federalpolyede.edu.ng_idh35skikv ( 10000) PHP Version : 7.4.33 Disable Function : opcache_get_status MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/vhosts/federalpolyede.edu.ng/phd_code/ |
Upload File : |
import matplotlib.pyplot as plt, numpy as np
import pandas as pd
import os
# Specify the path and filename of the Excel file
filename = 'RE_output_4.xlsx'
# Check if the file exists
if os.path.exists(filename):
# Delete the file
os.remove(filename)
data = {
'cycle':[0],
'level-0':[100],
'level-1':[100],
'level-2':[100],
'level-Real':[100]
}
df1 = pd.DataFrame(data)
#Read in Data from the field
df = pd.read_excel('c:/myData/PhD/code/output_4.xlsx')
#print(df.loc[df['sn']>0,['Attacker']])
arr = eval(df.to_json())
#print(arr)
#Label the defence levels
defence_2 = 2
defence_1 = 1
defence_0 = 0
defence_Real=0
#Set Initial Residual Energy
residual_energy_0 = 100
residual_energy_1 = 100
residual_energy_2 = 100
residual_energy_real = 100
#Set Assumption for Attacker
#energy_a0 = 0.0/100
#energy_a1 = 0.001/100
#energy_a2 = 0.002/100
#Set Assumption for Defender
energy_d0 = 0.0/10
energy_d1 = 0.03/10
energy_d2 = 0.06/10
x_point = []
y_point_0 = []
y_point_1 = []
y_point_2 = []
y_point_real=[]
for i in range(len(arr['Attacker'])):
attacker = arr['Attacker'][str(i)]
defenderReal = arr['Defender'][str(i)]
if defence_1==1:
if(attacker == 0):
residual_energy_1 = residual_energy_1-energy_d1
elif (attacker == 1):
residual_energy_1 = residual_energy_1-energy_d1
elif(attacker == 2):
residual_energy_1 = residual_energy_1-energy_d1
if defence_0==0:
if(attacker == 0):
residual_energy_0 = residual_energy_0-energy_d0
elif (attacker == 1):
residual_energy_0 = residual_energy_0-energy_d0
elif(attacker == 2):
residual_energy_0 = residual_energy_0-energy_d0
if defence_2==2:
if(attacker == 0):
residual_energy_2 = residual_energy_2-energy_d2
elif (attacker == 1):
residual_energy_2 = residual_energy_2-energy_d2
elif(attacker == 2):
residual_energy_2 = residual_energy_2-energy_d2
# if defence_Real==defender:
if (defenderReal==0): res_energy=energy_d0
if (defenderReal==1): res_energy=energy_d1
if (defenderReal==2): res_energy=energy_d2
residual_energy_real = residual_energy_real-res_energy
x_point.append(i)
y_point_0.append(residual_energy_0)
y_point_1.append(residual_energy_1)
y_point_2.append(residual_energy_2)
y_point_real.append(residual_energy_real)
if (i%100==0):
#insert records to table
new_record = {'cycle': i, 'level-0': f'{residual_energy_0:.2f}', 'level-1': f'{residual_energy_1:.2f}', 'level-2': f'{residual_energy_2:.2f}', 'level-Real': f'{residual_energy_real:.2f}'}
#new_record = {'cycle': 0, 'level-0': 1, 'level-1': 2, 'level-2': 3, 'level-Real': 4}
# Append the new record to the DataFrame
df1 = df1.append(new_record, ignore_index=True)
df1.to_excel(filename, index=False)
# Print the updated DataFrame
print(df)
#End of insertion
#df.to_excel(filename, index=False)
# print(f'i = {i} and RE0 = "{residual_energy_0:.2f}" and RE1 = "{residual_energy_1:.2f}" and RE2 = "{residual_energy_2:.2f}" and RE_Real = "{residual_energy_real:.2f}"')
#print(y_point_0,'' ,y_point_1,' ' ,y_point_2)
print()
plt_x = np.array(x_point)
plt_y = np.array(y_point_0)
#print(f'a-xis = {x_point} \n y-axis {y_point_0}')
key0, = plt.plot(plt_x, plt_y, label ='Defence: Level-0')
#plt_x = np.array(x_point)
plt_y = np.array(y_point_1)
key1, = plt.plot(plt_x, plt_y, label ='Defence: Level-1')
plt_x = np.array(x_point)
plt_y = np.array(y_point_2)
key2, = plt.plot(plt_x, plt_y, label ='Defence: Level-2')
plt_x = np.array(x_point)
plt_y = np.array(y_point_real)
key2, = plt.plot(plt_x, plt_y, label ='Defence: Level-Real')
leg = plt.legend(loc='upper center')
plt.xlabel('Time (Cycle)')
plt.ylabel('Residual Energy (%)')
plt.title('Resource Usage = Memory Usage + Power Consumption')
plt.show()
print("Data successfully exported to Excel file:", filename)