1. 程式人生 > >生成隨機數,繪製折線圖

生成隨機數,繪製折線圖

import random
import matplotlib.pyplot as plt
def all_list(arr):
    result = {}
    for i in set(arr):
        result[i] = arr.count(i)
    return result

def SumT(n):
    a =[]
    for i in range(1,n+1):
       a.append(random.randint(1,64))
    
    dist = all_list(a)
    d1 = {k: v for k, v in dist.items() if v > 1}
    num1 = len(d1)
    num2 = n - num1
    if 0.5< (num1):
      Add_f = 2
    else:
      Add_f = 4
    T = num2 +  Add_f*num1     
    return T
b = []
for i in range(1,51):
    b.append(SumT(i))
print(b)
x =list(range(1,51))
print(x)
from pylab import *
from matplotlib.ticker import MultipleLocator, FormatStrFormatter
'''
from pylab import *
from matplotlib.ticker import MultipleLocator, FormatStrFormatter
 
xmajorLocator   = MultipleLocator(20) #將x主刻度標籤設定為20的倍數
xmajorFormatter = FormatStrFormatter('%1.1f') #設定x軸標籤文字的格式
xminorLocator   = MultipleLocator(5) #將x軸次刻度標籤設定為5的倍數
 
ymajorLocator   = MultipleLocator(0.5) #將y軸主刻度標籤設定為0.5的倍數
ymajorFormatter = FormatStrFormatter('%1.1f') #設定y軸標籤文字的格式
yminorLocator   = MultipleLocator(0.1) #將此y軸次刻度標籤設定為0.1的倍數
 
t = arange(0.0, 100.0, 1)
s = sin(0.1*pi*t)*exp(-t*0.01)
 
ax = subplot(111) #注意:一般都在ax中設定,不再plot中設定
plot(t,s,'--b*')
 
#設定主刻度標籤的位置,標籤文字的格式
ax.xaxis.set_major_locator(xmajorLocator)
ax.xaxis.set_major_formatter(xmajorFormatter)
 
ax.yaxis.set_major_locator(ymajorLocator)
ax.yaxis.set_major_formatter(ymajorFormatter)
 
#顯示次刻度標籤的位置,沒有標籤文字
ax.xaxis.set_minor_locator(xminorLocator)
ax.yaxis.set_minor_locator(yminorLocator)
 
ax.xaxis.grid(True, which='major') #x座標軸的網格使用主刻度
ax.yaxis.grid(True, which='minor') #y座標軸的網格使用次刻度
 
show()

'''
#figsize = 11,9
#figure, ax = plt.plot(figsize=figsize
plt.plot(x, b, 'ro-')
#設定座標間隔
ax.xaxis.set_major_locator(MultipleLocator(10))

plt.show()