生成隨機數,繪製折線圖
阿新 • • 發佈:2018-12-20
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()