Python實現(xiàn)隨機漫步功能
隨機漫步生成是無規(guī)則的,是系統(tǒng)自行選擇的結(jié)果。根據(jù)設(shè)定的規(guī)則自定生成,上下左右的方位,每次所經(jīng)過的方向路徑。
首先,創(chuàng)建一個RandomWalk()類和fill_walk()函數(shù)
random_walk.py
from random import choice
class Randomwalk ():
'''一個生成隨機數(shù)漫步的類'''
def __init__(self,num_point=5000):
'''初始化隨機漫步的屬性'''
self.num_point = num_point
#所有隨機漫步的開始都是坐標[0,0]
self.x_lab = [0]
self.y_lab = [0]
def fill_walk(self):
'''計算隨機漫步的所有點'''
while len(self.x_lab) < self.num_point:
#決定前進方向以及前進的距離
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
#計算下一個點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、繪制隨機漫步圖
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))
#突出起點(0,0)和終點
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)
#隱藏坐標軸
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實現(xiàn)隨機漫步功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Python的Django應(yīng)用程序解決AJAX跨域訪問問題的方法
針對Django中在編寫供AJAX調(diào)用的API時碰到的跨域問題,我們來總結(jié)下Python的Django應(yīng)用程序解決AJAX跨域訪問問題的方法,其中使用GitHub上開源分享的django-cors-headers尤其推薦2016-05-05
Python實現(xiàn)實時增量數(shù)據(jù)加載工具的解決方案
這篇文章主要分享結(jié)合單例模式實際應(yīng)用案例:實現(xiàn)實時增量數(shù)據(jù)加載工具的解決方案。最關(guān)鍵的是實現(xiàn)一個可進行添加、修改、刪除等操作的增量ID記錄表。需要的可以參考一下2022-02-02
PyQt5實現(xiàn)用戶登錄GUI界面及登錄后跳轉(zhuǎn)
PyQt5是強大的GUI工具之一,通過其可以實現(xiàn)優(yōu)秀的桌面應(yīng)用程序。本文主要介紹了PyQt5實現(xiàn)用戶登錄GUI界面及登錄后跳轉(zhuǎn),具有一定的參考價值,感興趣的可以了解一下2021-11-11
Python提取PDF發(fā)票信息保存Excel文件并制作EXE程序的全過程
之前零散的用過一點python做數(shù)據(jù)處理,這次又遇到一個數(shù)據(jù)處理的小功能,下面這篇文章主要給大家介紹了關(guān)于Python提取PDF發(fā)票信息保存Excel文件并制作EXE程序的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-11-11
淺談python 線程池threadpool之實現(xiàn)
這篇文章主要介紹了淺談python 線程池threadpool之實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11

