python – 使用matplotlib的多个并排直方图?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 使用matplotlib的多个并排直方图?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1602字,纯文字阅读大概需要3分钟。
内容图文
我有一个软件必须处理大量不同的数据,并且可能需要不同的时间来处理它.随着软件的修改,处理数据所需的时间也会发生变化,所以我想创建一个显示时间差异和异常值的图表,因为理想情况下,这个程序每个部分需要大约相同的时间数据(这听起来很奇怪,不切实际,我知道,但在这里和我一起滚动).
起初,我想过使用箱形图,但我认为它们是不合适的,因为完全有可能将一半数据集悬停在一个值附近,另一半围绕另一个徘徊,我感觉不到箱形图会很好地说明这一点.所以我决定尝试使用直方图,但我无法弄清楚如何让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]
labels = ["v1", "v2", "v3"]
for MID_VAL, y in zip(MID_VALUES, data_set):
hist, bin_edges = np.histogram(y, bins=number_of_bins)
bottom = bin_edges[:-1]
heights = np.diff(bin_edges)
lefts = MID_VAL - .5 * hist
ax.barh(bottom, hist, height=heights, left=lefts)
ax.set_xticks(MID_VALUES)
ax.set_xticklabels(labels)
plt.show()
这个缺乏我承认的很多改进,例如:MID_VALUES是手动选择的,这取决于数据集并且可以自动化.不过,您可以将其变为更有用的格式.
内容总结
以上是互联网集市为您收集整理的python – 使用matplotlib的多个并排直方图?全部内容,希望文章能够帮你解决python – 使用matplotlib的多个并排直方图?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。