我正在使用下面的代碼來創建一個範圍內的隨機數字的加權列表。將加權數字轉換爲多個直方圖
import csv
import random
import numpy as np
import matplotlib.pyplot as plt
itemsList = []
rnd_numbs = csv.writer(open("rnd_numbs.csv", "wb"))
rnd_numbs.writerow(['number'])
items = [1, 2, 3, 4, 5]
probabilities= [0.1, 0.1, 0.2, 0.2, 0.4]
prob = sum(probabilities)
print prob
c = (1.0)/prob
probabilities = map(lambda x: c*x, probabilities)
print probabilities
ml = max(probabilities, key=lambda x: len(str(x)) - str(x).find('.'))
ml = len(str(ml)) - str(ml).find('.') -1
amounts = [ int(x*(10**ml)) for x in probabilities]
itemsList = list()
for i in range(0, len(items)):
itemsList += items[i:i+1]*amounts[i]
for item in itemsList:
rnd_numbs.writerow([item])
我想什麼做的是(A)列出這些數字隨機下來的CSV列,不知道爲什麼他們走出預排序,(B)列出的數量下降了comumn而不是作爲一個(c)按定義的時間間隔創建並保存多個腦電圖,如前100個號碼,前250個號碼,後500個號碼,...至末尾
對於(c)我想爲數據列表的各種截止點創建多個圖片。
嘗試在直方圖
x = itemsList[0:20]
fig = plt.figure()
ax = fig.add_subplot(111)
# 100 is the number of bins
ax.hist(x, 10, normed=1, facecolor='green', alpha=0.75)
ax.set_xlim(0, 5)
ax.set_ylim(0, 500)
ax.grid(True)
plt.show()
不確定c是什麼意思,你能舉個例子嗎? – cmd
隨機部分從哪裏來? –
@cmd我試圖採用加權方案在每個時間段產生數字,然後在特定的滾動時間間隔內查看分佈的樣子。它將被用作教學工具來展示中心極限定理和一致性如何工作。這種在線工具是無聊的,所以我試圖做我自己的。 – CJ12