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

