4

2D でランダム ウォークを作成し、2D ウォークをプロットしようとしています。私は散歩をすることができましたが、プロットはまさに私が望んでいたものではありません. Python でウォーク ライブを見ることは可能でしょうか? または、すべてのポイントにラベルを追加して、どのポイントが最初に来てどのポイントが 2 番目に来たかなどを知ることができますか?

import numpy as np
import matplotlib.pyplot as plt
import random
def randomWalkb(length):
    steps = []
    x,y = 0,0
    walkx,walky = [x],[y]
    for i in range(length):

        new = random.randint(1,4)
        if new == 1:
            x += 1
        elif new == 2:
            y += 1
        elif new ==3 :
            x += -1
        else :
            y += -1
        walkx.append(x)
        walky.append(y)
    return [walkx,walky]

walk = randomWalkb(25)
print walk
plt.plot(walk[0],walk[1],'b+', label= 'Random walk')
plt.axis([-10,10,-10,10])
plt.show()

編集私は自分のコードを間違ってコピーしました。正しいパッケージがインストールされていれば、コンパイル中です。

4

3 に答える 3

6

組み込みturtleモジュールを使用して、パスを知覚可能な速度で描画できます。

import turtle

turtle.speed('slowest')

walk = randomWalkb(25)

for x, y in zip(*walk):
    #multiply by 10, since 1 pixel differences are hard to see
    turtle.goto(x*10,y*10)

turtle.exitonclick()

サンプル結果:

ここに画像の説明を入力

于 2013-06-26T14:11:01.090 に答える
3

色を使用して時間情報を視覚化します。つまり、プロットしてみます

plt.plot(walk[0],walk[1],label= 'Random walk')
plt.scatter(walk[0],walk[1],s=50,c=range(26))
于 2013-06-26T14:12:20.287 に答える
1

http://jakevdp.github.io/blog/2012/08/18/matplotlib-animation-tutorial/のアニメーション チュートリアルを参照してください。

この場合、アニメーション関数はウォークの 1 つのステップを実行し、xy データを適切に設定する必要があります。アニメーションを保存したくない場合、またはコーデックがインストールされていない場合は、anim.save 呼び出しを無視してください。

于 2013-06-26T14:11:25.533 に答える