ITPub博客

首页 > 应用开发 > Python > python做频率统计图 完整版

python做频率统计图 完整版

原创 Python 作者:good000 时间:2021-10-22 11:03:25 0 删除 编辑

# your code goes here

from matplotlib import pyplot as plt

import pandas as pd

def linearCongruentialMethod(Xo, m, a, c, randomNums, U):

     randomNums[0] = Xo

     U[0] = randomNums[0] / m

     for i in range(1, 10000):

         # Follow the linear congruential method

         randomNums[i] = ((randomNums[i - 1] * a) + c) % m

         U[i] = randomNums[i] / m

print("a = 1597, b = 0, m = 244944")

a = 1597

c = 0

m = 244944

i = 0.01

for i in range(1, 6):

     X0 = i * 0.01

     print("\n X0 = ", X0, "\n")

     noOfRandomNums = 10005

     randomNums = [0] * (noOfRandomNums)

     U = [0] * (noOfRandomNums)

     linearCongruentialMethod(X0, m, a, c, randomNums, U)

     intervals = 20

     freq = [0] * (intervals)

     for j in U:

         x = 1

         x = j * 100 / 5

         freq[int(x)] = freq[int(x)] + 1

     mydata = {'Interval  ': ['[0.00,0.05)', '[0.05,0.10)', '[0.10,0.15)', '[0.15,0.20)', '[0.20,0.25)', '[0.25,0.30)',

                              '[0.30,0.35)', '[0.35,0.40)', '[0.40,0.45)', '[0.45,0.50)', '[0.50,0.55)', '[0.55,0.60)',

                              '[0.60,0.65)', '[0.65,0.70)', '[0.70,0.75)', '[0.75,0.80)', '[0.80,0.85)', '[0.85,0.90)',

                              '[0.90,0.95)', '[0.95,1.00)'],

               'Freuency': freq}

     df = pd.DataFrame(mydata)

     print(df)

     data = {'1': freq[0], '2': freq[1], '3': freq[2], '4': freq[3], '5': freq[4], '6': freq[5], '7': freq[6],

             '8': freq[7], '9': freq[8], '10': freq[9], '11': freq[10], '12': freq[11], '13': freq[12], '14': freq[13],

             '15': freq[14], '16': freq[15], '17': freq[16], '18': freq[17], '19': freq[18], '20': freq[19], }

     interval = list(data.keys())

     frequency = list(data.values())

     fig = plt.figure(figsize=(10, 5))

     plt.bar(interval, frequency, color='maroon', width=0.4)

     plt.show()

print("\na = 51749, b = 0, m = 244944")

a = 51749

c = 0

m = 244944

i = 0.01

for i in range(1, 6):

     X0 = i * 0.01

     print("\n X0 = ", X0, "\n")

     noOfRandomNums = 10005

     randomNums = [0] * (noOfRandomNums)

     U = [0] * (noOfRandomNums)

     linearCongruentialMethod(X0, m, a, c, randomNums, U)

     intervals = 20

     freq = [0] * (intervals)

     for j in U:

         x = 1

         x = j * 100 / 5

         freq[int(x)] = freq[int(x)] + 1

     mydata = {'Interval  ': ['[0.00,0.05)', '[0.05,0.10)', '[0.10,0.15)', '[0.15,0.20)', '[0.20,0.25)', '[0.25,0.30)',

                              '[0.30,0.35)', '[0.35,0.40)', '[0.40,0.45)', '[0.45,0.50)', '[0.50,0.55)', '[0.55,0.60)',

                              '[0.60,0.65)', '[0.65,0.70)', '[0.70,0.75)', '[0.75,0.80)', '[0.80,0.85)', '[0.85,0.90)',

                              '[0.90,0.95)', '[0.95,1.00)'],

               'Freuency': freq}

     df = pd.DataFrame(mydata)

     print(df)

     data = {'1': freq[0], '2': freq[1], '3': freq[2], '4': freq[3], '5': freq[4], '6': freq[5], '7': freq[6],

             '8': freq[7], '9': freq[8], '10': freq[9], '11': freq[10], '12': freq[11], '13': freq[12], '14': freq[13],

             '15': freq[14], '16': freq[15], '17': freq[16], '18': freq[17], '19': freq[18], '20': freq[19], }

     interval = list(data.keys())

     frequency = list(data.values())

     fig = plt.figure(figsize=(10, 5))

     plt.bar(interval, frequency, color='blue', width=0.4)

     plt.show()

好买网 IT技术交易平台

壹脉销客V3.0.0版本,适合政企单位的宣传展示名片系统Java源码

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/70008680/viewspace-2838729/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 旋转算法
请登录后发表评论 登录
全部评论

注册时间:2021-10-20

  • 博文量
    10
  • 访问量
    1946