0

我为二维随机游走编写了代码:

def r2walk(T):
    x = np.zeros((T))
    y = np.zeros((T))
    x = [0]*T
    y = [0]*T
    for t in range(0,T):
        walk = random.random()
        if 0 < walk < .25:
            x[t] = x[t-1] + 1
        elif .25 < walk < .5:
            x[t] = x[t-1] - 1
        elif .5 < walk < 0.75:
            y[t] = y[t-1] + 1
        else:
            y[t] = y[t-1] - 1
     return x, y

我希望能够在 ax,y 网格上绘制随机游走的路径,但不确定如何进行。此外,我对 python 还是很陌生,我将不胜感激有关更有效地编写代码的任何提示(或者像您的观点那样优雅地编写代码)。先感谢您!

4

1 回答 1

1

您需要使用一些绘图包。最常用的是matplotlibnumpy.

然后你的代码看起来像:

import matplotlib.pyplot as plt
import numpy as np
import random

def r2walk(T):
    x = np.zeros((T))
    y = np.zeros((T))
    for t in range(0,T):
        walk = random.random()
        if 0 < walk < .25:
            x[t] = x[t-1] + 1
        elif .25 < walk < .5:
            x[t] = x[t-1] - 1
        elif .5 < walk < 0.75:
            y[t] = y[t-1] + 1
        else:
            y[t] = y[t-1] - 1
    return x, y



x, y = r2walk(100)

# create a figure
fig = plt.figure()
# create a plot into the figure
ax = fig.add_subplot(111)
# plot the data
ax.plot(x,y)

这会给你:

在此处输入图像描述

如果您完全不熟悉matplotlib,我建议您看一下IPythonpylab当然还有一些matplotlib教程。你可以用一百万种不同的方式来规划你的步行。

于 2014-07-28T20:36:22.487 回答