Как связать точки с линией? - PullRequest
0 голосов
/ 04 мая 2020

Мне удалось построить точки на изображении. Я сейчас пытаюсь соединить точки, используя линию. По сути, подражая тем, которые соединяют точечные головоломки.

Это мой код:

from PIL import Image  
import numpy as np  
import matplotlib.pyplot as plt  

original_image = Image.open("jg.jpg") 
bw_image = original_image.convert('1') 

bw_image_array = np.array(bw_image, dtype=np.int)  
black_indices = np.argwhere(bw_image_array == 0)  
chosen_black_indices = black_indices[np.random.choice(black_indices.shape[0], replace=False, size=90000)]  

plt.figure(figsize=(5, 5), dpi=100)  
plt.scatter([x[1] for x in chosen_black_indices], [x[0] for x in chosen_black_indices], color='black', s=1)  
plt.gca().invert_yaxis()  
plt.xticks([])  
plt.yticks([]) 
plt.show()

Я стремлюсь к этому:

import numpy as np
import matplotlib.pyplot as plt

x = np.random.random_sample(size=100)
y = np.random.random_sample(size=100)

fig, ax = plt.subplots()
ax.scatter(x,y)
plt.plot(x, y, '-o')
plt.show()

Я борюсь с тем, что бы go внутри plt.plot() для соединения точек изображения.

1 Ответ

1 голос
/ 04 мая 2020

Похоже, у вас есть ответ там во втором блоке кода. Функция построения Matplotlib может обрабатывать построение связанных точек с аргументом marker='o', поэтому вам вообще не нужно вызывать scatter. Так что просто измените эту строку:

plt.scatter([x[1] for x in chosen_black_indices],
            [x[0] for x in chosen_black_indices],
            color='black', s=1)  

на эту:

plt.plot([x[1] for x in chosen_black_indices],
         [x[0] for x in chosen_black_indices],
         marker='o',
         color='black') 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...