gpt4 book ai didi

python - Python/numpy 中带有百分比箱的直方图?

转载 作者:太空宇宙 更新时间:2023-11-03 16:52:21 25 4
gpt4 key购买 nike

我需要创建一个包含来自 2D 数据集的百分比箱的直方图,如下所示(这基本上是来自各种设备的一组报告,每行都是报告给定小时内其状态的设备):

# hour # parameter (in percents)
00 10
00 20
00 30
01 40
01 50
...

这样就会有一个按小时和百分位数分组的设备报告的堆叠直方图摘要,就像下面的 gnuplot 示例一样,其中分组代表报告所属的百分位数(例如 0 < r < 10%、10% < r < 20% 等等)。

enter image description here

现在我只想创建一个 2D 数组并将其全部输入到 gnuplot,如下所示:

#!/usr/bin/python

import numpy as np
import sys

data = np.loadtxt('mac-quality.csv')
out = [ [ 0 for k in xrange(10) ] for i in (xrange(24) ) ]

for i in data:
hour = i[0].astype(int)
quality = i[1].astype(int)
for bin in xrange(10):
pct = bin * 10
if quality > pct and quality < (pct + 10):
print('Data: %s, H: %s Percentile: %s:') % (i, hour, pct)
out[hour][bin] += 1
# print(out)

从 python 中生成这些直方图的正确方法是什么?

最佳答案

这完全使用了你的Python代码,但是用一些Matplotlib扩展了它。库代码,通常用于 python 中的绘图。这通常会取代 python 中的 gnuplot。

import numpy as np
import sys
import matplotlib.pyplot as plt

data = np.loadtxt('mac-quality.csv')
out = [ [ 0 for k in xrange(10) ] for i in (xrange(24) ) ]

# Number of bins you have
nBins = 10

for i in data:
hour = i[0].astype(int)
quality = i[1].astype(int)
for bin in xrange(10):
pct = bin * 10
if quality > pct and quality < (pct + 10):
print('Data: %s, H: %s Percentile: %s:') % (i, hour, pct)
out[hour][bin] += 1


plt.hist(data, nBins, normed=1, histtype='bar', stacked=True)
plt.title('Some Title')
plt.show()

关于python - Python/numpy 中带有百分比箱的直方图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35742494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com