如何绘制在Python对象的路径的痕迹?

问题描述 投票:0回答:1

问题#1A。 [5分]假设蚂蚁采取步骤(X,Y),每秒一个,其中,在每个步骤蚂蚁,x和y来自正态分布为0的平均值和为1.0mm的标准偏差随机漫步(假设这下面所有的问题)。绘制蚂蚁的路径的跟踪了一个多小时的课程。

mean = 0
sd = 1.0
side = np.random.normal()
step = np.random.normal()

for side, step in np.random.normal(1,3600): #3600 seconds in one hour
    side += 1
    step += 1
    x.append(side) #one step in x direction
    y.append(step) #one step in y direction

plt.plot(x,y,color = "darkpink")
python numpy matplotlib
1个回答
0
投票

有与您发布的代码服务器的问题,

  • 你实际上没有创造形状(1,3600),但单精度浮点,让你的错误在for循环的数组。如果你看一下documentationnp.random.normal你会看到,前两个位置参数都为平均值和标准偏差。第三个参数实际上是形状,这可以作为一个关键字参数访问。
  • 即使你得到一个(1,3600)阵列,在你的循环,你会被扩大2变量(1,3600)阵列,这是不可能的扩张沿第一轴发生
  • 我不知道为什么你正在总结一个到另一边和步骤,因为如果你会得到正确的价值norm(0,1)你会仅仅指刚要转变平均从0到1个norm(1,1)
  • 追加插入列表中的元素,但在任何地方,你正在考虑步骤(n)之后的路径应该是路径的总和在步骤(N-1)加步骤(n)。

码:

import numpy as np
import matplotlib.pyplot as plt

path = steps = np.random.normal(size=(3600,2))

# pos(n) = pos(n-1) + step(n)
for n in range(path.shape[0]-1):
    path[n+1] += path[n]

# Compact way to plot x and y: (3600,2) -> (2,3600) and the * expand along the first axis
plt.plot(*path.T)
plt.show()

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.