if (self.sch.energy(self.sch.configurations[load_type]['QoE'].idxmax(),(rates['perf']),duration,load_type,"Median")+self.sch.energy(self.sch.configurations[load_type]['QoE'].idxmin(),(rates['sust']+rates['bal']),duration,load_type,"Median"))>=power*duration:
best_power[power]['case 2']=1
ifbest_power[power]['case 1']==0:
if (self.sch.energy(self.sch.configurations[load_type]['QoE'].idxmax(),(rates['sust']+rates['bal']+rates['perf']),duration,load_type,"Median"))<=power*duration:
'''plt.bar([x-width/2 for x in range(1,len(ratios)+1)], [self.next_configuration[str(x)]['Tot. J (based on median)'][0]/duration for x in ratios], width=width, label='Gray power', color='lightgray')
plt.bar([x-width/2 for x in range(1,len(ratios)+1)], [self.green_power for x in ratios], width=width, label='Green power', color='g')
plt.bar([x+width/2forxinrange(1,len(ratios)+1)],[self.next_configuration[str(x)]['Tot. J (based on median)'][0]/durationforxinratios],width=width,label='Power(Perf)',color='r')
forx,yinzip(range(1,len(ratios)+1),ratios):
ifself.next_configuration[str(y)]['Tot. J (based on median)'][0]/duration==0:
continue
plt.text(x+width/2,self.next_configuration[str(y)]['Tot. J (based on median)'][0]/duration+1,f"{self.next_configuration[str(y)]['Tot. J (based on median)'][0]/duration:.1f}",ha='center',size=7)
#ax.bar([x+0.1 for x in cases[str(ratio)].keys()], [next_configuration[str(ratio)][x]['Energy'][0]/duration for x in cases[str(ratio)].keys()], width=0.1, label='Power(Sust)', color='lightgreen')#, marker='^')
#plt.scatter([x+width/2 for x in range(1,len(case_ratios)+1)], [baselines[case][str(x)]['Tot. J (based on median)'][0]/duration for x in case_ratios])
plt.xlabel('Load distribution [%Perf, %Bal, %Sust]')
plt.ylabel('Power (W)')
plt.title('Green power vs power of the proposed configuration')
plt.bar([x+width/2forxinrange(1,len(ratios)+1)],[self.next_configuration[str(x)]['Tot. J (based on median)'][0]/durationforxinratios],width=width,label='Power(Perf)',color='r')
forx,yinzip(range(1,len(ratios)+1),ratios):
ifself.next_configuration[str(y)]['Tot. J (based on median)'][0]/duration==0:
continue
plt.text(x+width/2,self.next_configuration[str(y)]['Tot. J (based on median)'][0]/duration+1,f"{self.next_configuration[str(y)]['Tot. J (based on median)'][0]/duration:.1f}",ha='center',size=7)
#axs[0].scatter([x for x in range(1,len(ratios)+1)], [self.next_configuration[str(x)]['QoE'][2]/max_qoe for x in ratios], label='QoE(Perf)', color='blue', marker='*')