Source code for plotpop
import matplotlib.pyplot as plt
[docs]def plot_pop_MO(data, fname = None, title = None):
        
    '''
    Plot the population fitnesses for a multiple objective genetic algorithm
    
    :param data: 2-column matrix with objective values for each individual in each row
    
    :param fname: File name to save the graph as. If none is given, it just displays.
    
    :param title: Title for the graph.
    '''    
    
    plt.plot(data[:,0], data[:,1], marker='o', color = 'k', linestyle = 'None')       # population
    plt.xlabel('Surface energy (J/m^2)', size=24)
    plt.ylabel('Curent density (mA/cm^2)', size=24)
    plt.xlim([1.2, 2.4])
    plt.ylim([0, 100])
    plt.xticks(size=20)
    plt.yticks(size=20)
    if not title is None:
        plt.title(title, size=24)
    plt.tight_layout()
    
    if fname is None:
        plt.show()
    else:
        plt.savefig(fname)
        plt.close() 
            
            
[docs]def plot_pop_SO(data, fname = None, title = None):
        
    '''
    Plot the population fitnesses for a single objective genetic algorithm
    
    :param data: List or 1-D array of values
    
    :param fname: File name to save the graph as. If none is given, it just displays.
    
    :param title: Title for the graph.
    '''    
    
    plt.hist(data, bins = [i * 5 for i in range(21)])
    plt.xlabel('Curent density (mA/cm^2)', size=24)
    plt.ylabel('Frequency', size=24)
    plt.xlim([0, 100])
    #plt.ylim([0, 300])
    plt.xticks(size=20)
    plt.yticks(size=20)
    if not title is None:
        plt.title(title, size=24)
    plt.tight_layout()
    
    if fname is None:
        plt.show()
    else:
        plt.savefig(fname)
        plt.close()