Python中使用random隨機函數與Matplotlib庫繪製隨機漫步圖

                                                       Python中使用random隨機函數與Matplotlib庫繪製隨機漫步圖

一、概述

       隨機現象在我們的生活中並不少見,我們常見的一次拋硬幣的正反面,股票的走勢等等,都是隨機事件。這些不確定性事件給我們帶來恐慌的同時也帶了希望,讓我們即使在很困難的情境下也仍然相信機會會降臨在我們身上。隨機漫步理論最初源於經濟學中,後來逐步溢出到其他的領域。在本文中,通過繪製隨機漫步圖直觀的查看隨機現象,也更進一步瞭解如何使用隨機函數以及繪圖功能。

二、代碼演示

from random import choice, randint
import matplotlib.pyplot as plt

class RandomWalk():
    def __init__(self, walk_nums=100):
        self.walk_nums = walk_nums  # 移動的總次數
        self.x_values = [0]  # x軸方向軌跡座標列表
        self.y_values = [0]  # y軸方向軌跡座標列表

    def move(self):
        while len(self.x_values) < self.walk_nums:  # 直到軌跡座標等於設置的移動次數爲止
            x_direction = choice([-1, 1])  # x軸運動的方向,從-1,1中隨機選擇一個值
            x_distance = randint(0, 10)  # x軸運動的距離
            x_step = x_direction * x_distance

            y_direction = choice([-1, 1])  # y軸運動的方向
            y_distance = randint(0, 10)  # y軸運動的距離
            y_step = y_direction * y_distance

            if x_step == 0 and y_step == 0:
                continue  # 略去座標原點的值

            self.x_values.append(self.x_values[-1] + x_step)  # 將生成的點添加到座標列表彙總
            self.y_values.append(self.y_values[-1] + y_step)

# 開始繪製圖像
randomwalk = RandomWalk(10000)
randomwalk.move()

point_numbers = range(randomwalk.walk_nums)  # 繪圖的時候用到這個參數,代表各個點的顏色都不盡相同,配合 cmap 參數使用。

plt.scatter(randomwalk.x_values, randomwalk.y_values, c=point_numbers, cmap=plt.cm.Blues, edgecolors='none',
            s=15)  # c 點的顏色個數,cmap 顏色值映射

# 起點和終點高亮
plt.scatter(randomwalk.x_values[0], randomwalk.y_values[0], c='red', s=100)  # c代表顏色,s代表大小。
plt.scatter(randomwalk.x_values[-1], randomwalk.y_values[-1], c='red', s=100)

# 隱藏x、y軸
plt.axes().get_xaxis().set_visible(True)
plt.axes().get_yaxis().set_visible(True)
# 顯示運動軌跡圖
plt.show()

發佈了62 篇原創文章 · 獲贊 171 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章