como fazer um gráfico de boxplot agrupado em matplotlib

Eu tenho três algoritmos, A, B e C. Eu os executei em conjuntos de dados diferentes e gostaria de representar graficamente seus tempos de execução em cada um deles como um boxplot agrupado em Python.

Como um exemplo visual do que eu quero, fiz um desenho terrível, mas espero que isso aponte.

Se meus dados em python se parecem com isto:

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)

Como posso fazer meu enredo parecer como a imagem que eu desenhei?

questionAnswers(1)

yourAnswerToTheQuestion