如何在matplotlib中制作分组的箱线图

我有三种算法,A,B和C。我已在不同的数据集上运行它们,并希望将它们的运行时绘制为Python中的分组箱图。

作为我想要的视觉示例,我制作了一张糟糕的图纸,但希望它能指出要点。

箱线图图形绘制

如果我在python中的数据如下所示:

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)

如何使我的情节看起来像我画的照片?

回答:

使用独立的子图最容易做到这一点:

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()

在此处输入图片说明

以上是 如何在matplotlib中制作分组的箱线图 的全部内容, 来源链接: utcz.com/qa/399328.html

回到顶部