我有一个软件必须处理大量不同的数据,并且可能需要不同的时间来处理它.随着软件的修改,处理数据所需的时间也会发生变化,所以我想创建一个显示时间差异和异常值的图表,因为理想情况下,这个程序每个部分需要大约相同的时间数据(这听起来很奇怪,不切实际,我知道,但在这里和我一起滚动).
起初,我想过使用箱形图,但我认为它们是不合适的,因为完全有可能将一半数据集悬停在一个值附近,另一半围绕另一个徘徊,我感觉不到箱形图会很好地说明这一点.所以我决定尝试使用直方图,但我无法弄清楚如何让matplotlib以我想要的方式绘制它.我想要一个单独的数字,X轴标有软件版本,Y轴显示处理数据集所需的时间,有多个直方图,就像我做的这个模型:
该图表显示在0.1版本中,大多数数据集在2-4秒内处理,由于某种原因需要12秒才能处理一组数据集. v0.1a摆脱了那些长的异常值,但一切都花了更长的时间. 0.1b比0.1a略快.最后,0.2显示了很大的速度提升,但又引入了异常值.
我怎样才能让matplotlib创建这样的情节?
解决方法:
这是一个(非常)基本的模型,说明如何实现这一目标:
import matplotlib.pyplot as plt
import numpy as np
number_of_bins = 20
number_of_data_points = 1000
ax = plt.subplot(111)
data_set = [np.random.normal(0, 1, number_of_data_points),
np.random.normal(6, 1, number_of_data_points),
np.random.normal(-3, 1, number_of_data_points)]
MID_VALUES = [0, 200, 400]
l