Python實(shí)現(xiàn)隨機(jī)漫步功能
隨機(jī)漫步生成是無規(guī)則的,是系統(tǒng)自行選擇的結(jié)果。根據(jù)設(shè)定的規(guī)則自定生成,上下左右的方位,每次所經(jīng)過的方向路徑。
首先,創(chuàng)建一個RandomWalk()類和fill_walk()函數(shù)
random_walk.py
from random import choice
class Randomwalk ():
'''一個生成隨機(jī)數(shù)漫步的類'''
def __init__(self,num_point=5000):
'''初始化隨機(jī)漫步的屬性'''
self.num_point = num_point
#所有隨機(jī)漫步的開始都是坐標(biāo)[0,0]
self.x_lab = [0]
self.y_lab = [0]
def fill_walk(self):
'''計(jì)算隨機(jī)漫步的所有點(diǎn)'''
while len(self.x_lab) < self.num_point:
#決定前進(jìn)方向以及前進(jìn)的距離
x_direction = choice([1,-1])
x_distance = choice([0,1,2,3,4])
x_step = x_direction * x_distance
y_direction = choice([1,-1])
y_distance = choice([0,1,2,3,4])
y_step = y_direction * y_distance
#拒絕原地不動
if x_step == 0 and y_step == 0:
continue
#計(jì)算下一個點(diǎn)X和Y的值
next_x = self.x_lab[-1] + x_step
next_y = self.y_lab[-1] + y_step
self.x_lab.append(next_x)
self.y_lab.append(next_y)
2、繪制隨機(jī)漫步圖
rw_visual.py
import matplotlib.pyplot as plt from random_walk import Randomwalk from random import choice rw = Randomwalk() rw.fill_walk() plt.scatter(rw.x_lab,rw.y_lab,s=15) plt.show()
3、生成效果圖片

4、修改代碼-->隱藏邊框
rw_visual.py
import matplotlib.pyplot as plt
from random_walk import Randomwalk
from random import choice
while True:
rw = Randomwalk()
rw.fill_walk()
#設(shè)置繪畫窗口大小
plt.figure(dpi=128,figsize=(10,6))
point_numbers = list(range(rw.num_point))
#突出起點(diǎn)(0,0)和終點(diǎn)
plt.scatter(0,0,c='green',edgecolors='none',s=100)
plt.scatter(rw.x_lab[-1],rw.y_lab[-1],c='red',edgecolors='none',s=100)
#隱藏坐標(biāo)軸
plt.axes().get_xaxis().set_visible(False)
plt.axes().get_yaxis().set_visible(False)
plt.scatter(rw.x_lab,rw.y_lab,c=point_numbers,cmap=plt.cm.Blues,edgecolors='none',s=15)
plt.show()
keep_running = input("Make another walk?(y/n): ")
keep_running = keep_running.lower()
if keep_running == 'n':
break
5、展示效果

總結(jié)
以上所述是小編給大家介紹的Python實(shí)現(xiàn)隨機(jī)漫步功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Python3通過chmod修改目錄或文件權(quán)限的方法示例
這篇文章主要介紹了Python3通過chmod修改目錄或文件權(quán)限的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
Python調(diào)整PDF文檔頁邊距的方法小結(jié)
PDF 文檔中的邊距是指環(huán)繞每頁內(nèi)容的空白區(qū)域,充當(dāng)文本或圖像與頁面邊緣之間的緩沖區(qū),本文將介紹如何使用 Spire.PDF for Python 修改 PDF 文檔的頁邊距,為不同使用場景定制合適的文檔布局,需要的朋友可以參考下2024-05-05
Django在pycharm下修改默認(rèn)啟動端口的方法
今天小編就為大家分享一篇Django在pycharm下修改默認(rèn)啟動端口的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
python 獲取當(dāng)天凌晨零點(diǎn)的時(shí)間戳方法
今天小編就為大家分享一篇python 獲取當(dāng)天凌晨零點(diǎn)的時(shí)間戳方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
完美解決Pycharm中matplotlib畫圖中文亂碼問題
這篇文章主要介紹了完美解決Pycharm中matplotlib畫圖中文亂碼問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
詳解Python中的分組函數(shù)groupby和itertools)
這篇文章主要介紹了Python中的分組函數(shù)groupby和itertools)的實(shí)例代碼,非常不錯,具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-07-07
Python面向?qū)ο笾o態(tài)屬性、類方法與靜態(tài)方法分析
這篇文章主要介紹了Python面向?qū)ο笾o態(tài)屬性、類方法與靜態(tài)方法,結(jié)合實(shí)例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中靜態(tài)屬性、類方法及靜態(tài)方法相關(guān)概念、使用方法及操作注意事項(xiàng),需要的朋友可以參考下2018-08-08

