cómo hacer un gráfico de diagrama de caja agrupado en matplotlib

Tengo tres algoritmos, A, B y C. Los he ejecutado en diferentes conjuntos de datos y me gustaría graficar sus tiempos de ejecución en cada uno como un diagrama de caja agrupado en Python.

Como un ejemplo visual de lo que quiero, hice un dibujo terrible, pero espero que llegue el punto.

Si mis datos en python se ven así:

import numpy as np
import random

data = {}
data['dataset1'] = {}
data['dataset2'] = {}
data['dataset3'] = {}

n = 5
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)

¿Cómo puedo hacer que mi trama se vea como la imagen que dibujé?

Respuestas a la pregunta(1)

Su respuesta a la pregunta