import os import matplotlib.pyplot as plt import numpy as np import pandas as pd import matplotlib.pyplot as plt from scipy.stats import binom,gamma def generate_binomial_probs(size = 5,n = 5, p= 0.5,plot = True): """ To print the binomial distribtion vector and plot a discreate binomial distribution """ plt.rcParams.update({'font.family':'times new roman'}) rv = binom(n, p) x = np.arange(size) probs = rv.pmf(x) diff = 1 - sum(probs) diff = diff/len(probs) probs = probs + diff print('------binomial------') print(x) print(probs) if plot: plt.vlines(x, 0, probs, colors='k', linestyles='-', lw=1) plt.legend(loc='best', frameon=False) plt.savefig(os.path.join('results', 'binomial_dist_2.pdf')) plt.show() def plot_ep_evol(folder = 'binomial_3',seed = 0,model_names = ['VI','VIMC','PPO','SP','PSO'],x_type = 'reward',y_label = 'Cost'): plt.rcParams.update({'font.family':'times new roman'}) fig, axs = plt.subplots(len(model_names),figsize=(20,10)) i = 0 for model in model_names: x = np.abs( np.load( os.path.join( 'results', 'binomial', f'{model}_{folder}_{x_type}_test_{seed}.npy' ) ) ) axs[i].plot(x[:100],label = model) axs[i].set_title(model) i += 1 for ax in axs.flat: ax.set(xlabel='Time steps', ylabel=y_label) for ax in axs.flat: ax.label_outer() plt.savefig( os.path.join( 'results', f'evol_reward_{folder}_{seed}.pdf' ), bbox_inches='tight' )