визуализировать

from random import randint

c = []
def generate_random_coordinates(N):
    for i in range(N):
        c.append([randint(-180, +180),randint(-90, +90)])
    print(c)



Ответы (1 шт):

Автор решения: CrazyElf

Да, использование библиотеки matplotlib действительно не очень интуитивно понятно местами, поэтому приведу вам готовый код, несколько переделанный из вашего.

from random import randint
from matplotlib import pyplot as plt

def generate_random_coordinates(N):
    c = []
    for i in range(N):
        c.append([randint(-180, +180),randint(-90, +90)])
    print(c)
    return c

c = generate_random_coordinates(3)

def find_nearest(coordinate, matrix):
    dist = lambda x, y: (x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2
    n = min(coordinate, key=lambda co: dist(co, xy))
    print(n)
    return n

xy = [12, 28]
n = find_nearest(c, xy)

# развернём пары координат в отдельные списки координат x и y
x = [i[0] for i in c]
y = [i[1] for i in c]

# "диаграмма рассеяния"
plt.scatter(x, y, marker='o', color='blue')

# линия, соединяющая заданную точку с ближайшей координатой из списка
plt.plot([xy[0], n[0]], [xy[1], n[1]], marker='o', color='green', alpha=0.3)

# покажем, что получилось
plt.show()

Пример получающегося изображения.

введите сюда описание изображения

Так то я и сам в matplotlib не очень силён, возможно, это можно сделать и как-то проще там. Обычно я пользуюсь более высокоуровневыми библиотеками, например Seaborn.

→ Ссылка