how to make a grouped boxplot graph in matplotlib

前端 未结 1 728
醉酒成梦
醉酒成梦 2020-12-29 14:59

I have three algorithms, A, B, and C. I\'ve run them on different datasets and would like to graph their runtimes on each as a grouped boxplot in Python.

As a visua

相关标签:
1条回答
  • 2020-12-29 15:08

    It's easiest to do this with independent subplots:

    import matplotlib.pyplot as plt
    import numpy as np
    import random
    
    data = {}
    data['dataset1'] = {}
    data['dataset2'] = {}
    data['dataset3'] = {}
    
    n = 500
    for k,v in data.iteritems():
        upper = random.randint(0, 1000)
        v['A'] = np.random.uniform(0, upper, size=n)
        v['B'] = np.random.uniform(0, upper, size=n)
        v['C'] = np.random.uniform(0, upper, size=n)
    
    fig, axes = plt.subplots(ncols=3, sharey=True)
    fig.subplots_adjust(wspace=0)
    
    for ax, name in zip(axes, ['dataset1', 'dataset2', 'dataset3']):
        ax.boxplot([data[name][item] for item in ['A', 'B', 'C']])
        ax.set(xticklabels=['A', 'B', 'C'], xlabel=name)
        ax.margins(0.05) # Optional
    
    plt.show()
    

    enter image description here

    0 讨论(0)
提交回复
热议问题