綜合前述的類(lèi)、函數(shù)、matplotlib等,完成一個(gè)隨機(jī)移動(dòng)的過(guò)程(注意要確定移動(dòng)的次數(shù),比如10萬(wàn)次),每次行走都完全是隨機(jī)的,沒(méi)有明確的方向,結(jié)果是由一系列隨機(jī)決策確定的,最后顯示出每次移動(dòng)的位置的圖表。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名申請(qǐng)、虛擬空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、蓮都網(wǎng)站維護(hù)、網(wǎng)站推廣。
思考:
1)每次走動(dòng)多少個(gè)像素,由隨機(jī)函數(shù)決定,每次移動(dòng)方向也隨機(jī)確定。由隨機(jī)方向和隨機(jī)像素共同移動(dòng)位置大小和方向。
2)保證將每次移動(dòng)的位置保存在列表中,供后面matplotlib調(diào)用,生成圖表。
故而,可以分成兩個(gè)文件,一個(gè)為rand_moving類(lèi),生成走動(dòng)像素、方向,并記錄相關(guān)數(shù)據(jù),保存在數(shù)列中,另一個(gè)為繪圖模塊randdraw_visual ,調(diào)用matplotlib和rand_moving類(lèi),生成一個(gè)實(shí)例,并調(diào)用計(jì)算出的數(shù)列組生成圖表。
一、rand_moving.py文件定義功能如下
1、初始化程序,設(shè)置一個(gè)參數(shù),即移動(dòng)的次數(shù),初始化位置全部設(shè)置為0
2、隨機(jī)生成x,y的方向和移動(dòng)像素,并相乘,得到相對(duì)移動(dòng)距離,即為每次移動(dòng)的距離和方向,即需要4個(gè)隨機(jī)函數(shù)來(lái)分別確定水平方向和垂直方向的 移動(dòng)位置大小和方向,
3,計(jì)算出下一個(gè)位置,并進(jìn)行保存到位置數(shù)列中,即每走完一步后,在屏幕中的絕對(duì)位置。
如下:
from random import choice #random是系統(tǒng)自帶的隨機(jī)函數(shù)模塊 class Rand_moving(): #定義一個(gè)Rand_moving類(lèi) def __init__(self,num_times=): # 初始化,設(shè)置默認(rèn)參數(shù)為10萬(wàn),可以修改這個(gè)參數(shù)試試機(jī)器運(yùn)行速度 self.num_times = num_times #移動(dòng)次數(shù) self.x_values=[0] # 設(shè)置兩個(gè)數(shù)列,用來(lái)保存每一步的位置,初始位置為(0, 0),數(shù)列元素個(gè)數(shù)會(huì)一直增加到num_times,用來(lái)記錄每一步的位置信息 self.y_values=[0] def fill_moving(self): #定義一個(gè)函數(shù),用來(lái)計(jì)算移動(dòng)方向和距離,并計(jì)算需要保存的位置信息 while len(self.x_values)<self.num_times:#循環(huán)不斷運(yùn)行,直到漫步包含所需數(shù)量的點(diǎn)num_times
x_direction = choice([1,-1]) #x的移動(dòng)方向,1向上,0不變,-1向下 x_distance = choice([0,1,2,3,4,5]) #x的每次移動(dòng)的像素, x_step = x_direction*x_distance #移動(dòng)方向乘以移動(dòng)距離,以確定沿x移動(dòng)的距離 y_direction= choice([1,-1]) #y的移動(dòng)方向,1向上,0不變,-1向下 y_distance = choice([0,1,2,3,4,5]) #y的每次移動(dòng)的像素, y_step = y_direction*y_distance #移動(dòng)方向乘以移動(dòng)距離,以確定沿y移動(dòng)的距離 #原地不變 if x_step ==0 and y_step==0: # x_step和 y_step都為零,則意味著原地踏步 continue #計(jì)算下一個(gè)點(diǎn)的位置坐標(biāo)x和y值,并分別保存到數(shù)列x_values和y_values中 next_x = self.x_values[-1] + x_step #self.x_values[-1]表示是數(shù)列最后一個(gè)值,初始為x_values=[0] next_y = self.y_values[-1] + y_step self.x_values.append(next_x )#將每次計(jì)算的next_x存入到數(shù)列x_values中 self.y_values.append(next_y ) #將每次計(jì)算的next_y存入到數(shù)列y_values中
網(wǎng)站欄目:python數(shù)據(jù)可視化-matplotlib入門(mén)(2)-利用隨機(jī)函數(shù)生成變化圖形
本文URL:http://chinadenli.net/article0/dsogpio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、軟件開(kāi)發(fā)、、網(wǎng)站收錄、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容