Makes boxplots for results.
import matplotlib.pyplot as plt
def plot(dataset_type, lists):
    fig1, ax1 = plt.subplots()
    plot_title = 'Accuracy of CNN on ' + dataset_type + ' Dataset'
    ax1.set_title(plot_title)
    bp1 = ax1.boxplot(lists, positions = [5, 10, 15, 20, 25], widths = 2)

    plt.xlabel('Noise Level')
    plt.ylabel('Accuracy (%)')

    labels = ['IDL', '35U', '35D', '55U', '55D']
    ax1.set_xticklabels(labels)

    plt.ylim((40, 100))

    plot_title = plot_title.replace(" ", "_").lower()

    plt.savefig('plots/' + plot_title)
    plt.show()

Digits

dataset_type = 'Digits'
level_IDL = [85, 87, 88, 82, 79, 82, 78, 83, 77, 76]
level_35U = [87, 78, 86, 78, 77, 81, 86, 75, 79, 78]
level_35D = [82, 67, 79, 75, 82, 73, 65, 81, 75, 76]
level_55U = [84, 79, 84, 74, 81, 75, 77, 75, 80, 87]
level_55D = [61, 64, 67, 64, 73, 66, 71, 70, 68, 69]
lists = [level_IDL, level_35U, level_35D, level_55U, level_55D]

plot(dataset_type, lists)

Letters

dataset_type = 'Letters'
level_IDL = [57, 53, 52, 62, 53, 60, 59, 57, 60, 54]
level_35U = [55, 54, 55, 53, 54, 56, 57, 56, 59, 49]
level_35D = [42, 49, 54, 47, 46, 48, 50, 44, 49, 44]
level_55U = [49, 61, 58, 68, 59, 57, 58, 61, 56, 59]
level_55D = [48, 43, 40, 43, 39, 43, 44, 45, 47, 41]
lists = [level_IDL, level_35U, level_35D, level_55U, level_55D]

plot(dataset_type, lists)

Mixed

dataset_type = 'Mixed'
level_IDL = [61, 63, 66, 59, 62, 56, 62, 62, 59, 56]
level_35U = [58, 61, 58, 56, 57, 58, 61, 60, 63, 62]
level_35D = [55, 53, 53, 54, 56, 53, 47, 56, 56, 57]
level_55U = [61, 62, 59, 57, 55, 63, 61, 61, 60, 60]
level_55D = [44, 47, 50, 46, 46, 48, 48, 50, 48, 43]
lists = [level_IDL, level_35U, level_35D, level_55U, level_55D]

plot(dataset_type, lists)