最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用matplotlib繪制隨機(jī)漫步圖

 更新時(shí)間:2018年08月27日 14:48:20   作者:youaresherlock  
這篇文章主要為大家詳細(xì)介紹了使用Python生成隨機(jī)漫步數(shù)據(jù),使用matplotlib繪制隨機(jī)漫步圖,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文我們來(lái)做一個(gè)簡(jiǎn)單的隨機(jī)漫步數(shù)據(jù)圖,進(jìn)一步了解matplotlib的使用,

使用Python生成隨機(jī)漫步數(shù)據(jù),再使用matplotlib繪制出來(lái),

隨機(jī)漫步是這樣行走得到的路徑: 每次行走都完全是隨機(jī)的,沒(méi)有明確的方向,結(jié)果是由一系列隨機(jī)決策決定的。
創(chuàng)建一個(gè)RandomWalk雷,隨機(jī)的選擇前進(jìn)的方向,一共有三個(gè)屬性,一個(gè)是存儲(chǔ)隨機(jī)漫步次數(shù)的變量,其他兩個(gè)是列表,分別存儲(chǔ)隨機(jī)漫步經(jīng)過(guò)的每個(gè)點(diǎn)的x和y坐標(biāo)

下面是代碼

from random import choice
 
class RandomWalk():
 "一個(gè)生成隨機(jī)漫步數(shù)據(jù)的表"
 
 def __init__(self, num_points = 5000):
 """初始化隨機(jī)漫步的屬性"""
 self.num_points = num_points
 
 # 所有隨機(jī)漫步都起始于(0, 0)
 self.x_values = [0]
 self.y_values = [0]
 
 def fill_walk(self):
 """計(jì)算隨機(jī)漫步包含的所有點(diǎn)"""
 
 # 不斷漫步,直到列表達(dá)到指定的長(zhǎng)度
 while len(self.x_values) < self.num_points:
 
  # 決定前進(jìn)的方向以及沿這個(gè)方向前進(jìn)的距離
  x_direction = choice([-1, 1])
  x_distance = choice([0, 1, 2, 3, 4])
  x_step = x_distance * x_direction 
 
  y_direction = choice([-1, 1])
  y_distance = choice([0, 1, 2, 3, 4])
  y_step = y_distance * y_direction
 
  # 拒絕原地踏步
  if x_step == 0 and y_step == 0:
  continue
 
  # 計(jì)算下一個(gè)點(diǎn)的x和y值
  next_x = self.x_values[-1] + x_step
  next_y = self.y_values[-1] + y_step
 
  self.x_values.append(next_x)
  self.y_values.append(next_y)
from random_walk import RandomWalk
 
# 不斷的模擬隨機(jī)漫步
while True:
 # 創(chuàng)建一個(gè)RandomWalk實(shí)例,將其包含的點(diǎn)繪制出來(lái)
 rw = RandomWalk()
 rw.fill_walk()
 
 
 point_numbers = list(range(rw.num_points))
 plt.scatter(rw.x_values, rw.y_values, c = point_numbers, cmap = plt.cm.Blues, 
 edgecolor = 'none', s = 5)
 
 # 突出起點(diǎn)和終點(diǎn)
 plt.scatter(0, 0, c='green', edgecolors = 'none', s = 100)
 plt.scatter(rw.x_values[1], rw.y_values[-1], c = 'red', edgecolors = 'none', s = 100)
 
 # 隱藏坐標(biāo)軸
 # plt.axes().get_xaxis().set_visible(False)
 # plt.axes().get_yaxis().set_visible(False)
 
 plt.show()
 
 keep_running = input("Make another walk? (y/n): ")
 if keep_running.lower().startswith('n'):
 break

這是沒(méi)有顏色漸變和繪制起始和結(jié)束點(diǎn)顏色和大小的圖片

這個(gè)是給出代碼的運(yùn)行情況,綠色為起始點(diǎn),紅色為終止點(diǎn),越靠近終止點(diǎn)藍(lán)色越深。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

延长县| 新龙县| 宁国市| 高平市| 昌图县| 南雄市| 漾濞| 松江区| 长沙县| 嘉鱼县| 仁化县| 日土县| 库尔勒市| 吉林省| 紫阳县| 彭山县| 温州市| 沿河| 宜兰市| 合江县| 永兴县| 常山县| 阿瓦提县| 石泉县| 昌平区| 广河县| 本溪市| 罗江县| 太原市| 青浦区| 那坡县| 哈密市| 巴彦县| 伊川县| 清镇市| 梨树县| 松滋市| 商南县| 白银市| 乐清市| 九江市|