当前位置: 首页 > 面试题库 >

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

卞博简
2023-03-14
问题内容

我有三种算法,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等高线图的标签,但文字标签用于线而不是数字: 在matplotlib文档中,我还没有找到如何做到这一点。有没有办法做到这一点?如果没有,我可以使用什么其他软件生成这种类型的绘图?

  • 问题内容: 给定时间表示中的信号图,如何绘制标记相应时间索引的线? 具体来说,给定时间索引范围为0到2.6(s)的信号图,我想绘制垂直红线以指示列表的相应时间索引,我该怎么办? 问题答案: 添加无需覆盖实际高度即可覆盖整个绘图窗口的垂直线的标准方法是 要么 您可以使用许多可用于其他情节命令的关键字(例如,,…)。您可以传递关键字参数,如果愿意,可以传递坐标(例如,将覆盖图的中部)。水平线()和矩形

  • 给定一个信号的时间表示图,如何画出相应的时间指标线? 具体来说,给定一个时间索引范围为0到2.6(s)的信号图,我想画垂直红线,指示列表的相应时间索引,我该怎么做?

  • 我在matplotlib中创建了一组子图(例如,3 x 2),但我只有不到6个数据集。如何使剩余的子批次为空? 安排如下: 这可能会持续几页,但在最后一页,例如,2,1框中有5个数据集将为空。不过,我宣布数字如下: 因此,在子地块2,1的空间中,有一组带有记号和标签的默认轴。如何以编程方式使该空间空白且没有轴?

  • 问题内容: 我该如何删除matplotlib轴的一条线(或多条线),使其实际上收集到垃圾并释放回内存?以下代码似乎删除了该行,但是从不释放内存(即使显式调用) 问题答案: 我正在展示 和结合使用的技巧。 我检查了您的大型数据集,并在系统监视器上也确认了内存的释放。 当然,更简单的方法(当不进行故障排除时)是从列表中弹出它并在不创建硬引用的情况下调用该行对象:

  • 我有一张桌子,比如: 生成虚拟数据: 我想用垫线 (v1.4) 在 Python 3 中完成一个任务: 绘制的直方图 按 两个小时,未能获得所需的直方图 我阅读了matplotlib的示例和用户指南。令人惊讶的是,我没有找到关于如何从颜色图中指定颜色的教程 我在谷歌上搜索过,但没有找到一个简洁的例子 我想一个人可以用,不导入一系列模块,例如,

  • 我的数据由各种波动率值组成,即0到1之间的十进制数。现在,只有6%到24%之间的值才是特别相关的,所以我试图构建一个直方图来显示这些值的相对计数。我想要一个包含0-6%、6-8%、…22-24%、, 我已经疯狂地接近能够通过阅读答案来做到这一点,例如垫迹xticks与直方图和垫迹(直方图)中的Bin大小不对齐。 如果有人能帮我解决这个问题,我将不胜感激。谢谢你的帮助。 这几乎生成了正确的直方图,但

  • 问题内容: 如何使用HTML制作垂直线? 问题答案: 在您希望该行显示在旁边的标记周围放置一个标记,并使用CSS对其进行样式设置: