在本示例中將使用python來生成隨機漫步資料,在使用matplotlib將資料視覺化的呈現出來。
隨機漫步:每次行走都完全是隨機的,有一系列隨機決策決定。
首先建立randomwalk類存入random_wolk.py包中
#coding=gbk
from random import choice
class
randomwalk()
:def
__init__
(self,num_points =
5000):
"""初始化隨機漫步的屬性"""
self.num_points = num_points
#所有隨機步數都為0
self.x_values =[0
] self.y_values =[0
]def
fill_walk
(self)
:"""計算隨機漫步包含的所有點"""
#不斷漫步直到列表達到指定的寬度
while
len(self.x_values)
< self.num_points:
#決定前進的方向,以及前進的距離
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 ==
0and y_step ==0:
continue
#計算下乙個點的x與y的值
next_x = self.x_values[-1
]+ x_step
next_y = self.y_values[-1
]+ y_step
下面**將隨機漫步的所有點都繪製出來,模擬多次隨機漫步,是指漫步圖樣式,重新繪製起點和終點,隱藏座標軸,調整尺寸以適應螢幕
#--coding:utf-8--
import matplotlib.pyplot as plt
from random_walk import randomwalk
while
true
:#建立乙個randomwalk例項,並將其包含的點都繪製出來
rw = randomwalk(
50000
) rw.fill_walk(
) plt.figure(figsize=(10
,6))
points_numbers =
list
(range
(rw.num_points)
) plt.scatter(rw.x_values,rw.y_values,c = points_numbers,
cmap = plt.cm.reds,edgecolors =
'none'
,s=1
) plt.axes(
).get_xaxis(
).set_visible(
false
) plt.axes(
).get_yaxis(
).set_visible(
false
) plt.scatter(0,
0,c =
'green'
,edgecolors =
'none'
,s=10
) plt.scatter(rw.x_values[-1
],rw.y_values[-1
],c =
'blue'
,edgecolors =
'none'
,s =10)
plt.show()
keep_running =
input
("make another walk? (y/n)"
)if keep_running ==
'n':
break
python必備單詞
print 輸出 input 輸入 str 字串 utf 8 字串的一種成熟編碼 ord 獲取字串的整數表示形式 chr 把編碼轉換成對應字元 encode 編碼指定為 bytes len 檢視乙個合集裡包含多少個元素 float 浮點數 list 可更改的有序合集 tuple 不可修改的有序列表,...
python必備單詞
學習從記憶開始,將一些知識背下來,對後面的學習會有極大的幫助 這42個單詞是學習python必須背會的單詞,也是 中常見的單詞。希望你能都背下來!1.adult d lt 成年人 2.authentication ent ke n 身份驗證 認證 鑑定 3.bit b t 稍微 小量 小塊 一點 4...
python必備操作
super 函式是用於呼叫父類 超類 的乙個方法。super 是用來解決多重繼承問題的,直接用類名呼叫父類方法在使用單繼承的時候沒問題,但是如果使用多繼承,會涉及到查詢順序 mro 重複呼叫 鑽石繼承 等種種問題。mro 就是類的方法解析順序表,其實也就是繼承父類方法時的順序表。classa obj...