在Python中使用坐标和地图图像进行网格绘图

时间:2018-11-22 17:09:30

标签: python matplotlib grid

我对使用python还是很陌生,我正在为我正在做的一个小项目寻求帮助。

因此,我首先要在坐标之外制作一个10x10的网格,然后添加一个循环函数,该函数可以随机选择一个单元格,并以某种方式存储它选择的单元格坐标,而无需两次选择相同的单元格。

到目前为止,我已经提出了这个建议。

x = 1
y = 1

scale = 10

nn = []

for x in range(1,scale+1):
    mm = []
    for y in range(1,scale+1):
        xy = [x,y]
        mm.append(xy)
        #print(xy)
        y=+1
    nn.append(mm)
    x=+1

Out:[[[1, 1],
  [1, 2],
  [1, 3],
  [1, 4],
  [1, 5],
  [1, 6],
    etc

下一部分是我挣扎的地方。

import random
r = random.randint(1,10)
x = 1
y = r

xy = [x,y]
print(xy)
while x < 10:

    # direction North=1, East=2, South=3
    if y == 1:
        dir = [random.randint(0,1),random.randint(0,1)]
    elif y == 10:
        dir = [random.randint(0,1),random.randint(-1,0)]
    else:
        dir = [random.randint(0,1),random.randint(-1,1)]

    xy = [(a + b) for (a, b) in zip(xy, dir)]

    x = xy[0]
    y = xy[1]

if xy == [(a + b) for (a, b) in zip(xy, dir)]:
    pass
else:
    print(xy)

最终我想将坐标绘制到网格上,然后将地图图像放在网格上。

这是我的第一个问题,因此请原谅错误和代码引号。 预先感谢

1 个答案:

答案 0 :(得分:0)

根据我的理解,您正在尝试从坐标网格中获取非重复的随机样本,这可以更容易地做到:

import random
grid = [(x,y) for x in range(10) for y in range(10)] # grid points
randomset = random.sample(grid, 5) # get 5 random element from grid

结果:

>>> randomset
[(6, 6), (4, 7), (7, 7), (1, 7), (0, 3)] # each coordinate will be unique.