有没有办法用matplotlib枚举plt.scatter中的标记?

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

我的目标是使用标记按特定顺序选择点。例如,想象一下选择棋盘的边缘(我知道有使用 opencv 的自动技术,但我需要手动选项)。 使用下面的代码,我可以在图像上绘制标记。我想枚举标记及其在列表中相应的顺序

x
y

import matplotlib.pyplot as plt
import numpy as np

img = plt.imread("image.png") 
x = np.random.rand(1, 20)*img.shape[1]
y = np.random.rand(1, 20)*img.shape[0]
size = 50

plt.imshow(img, cmap="gray") # plot image
plt.scatter(x, y, size, c="r", marker="+") # plot markers
plt.show()

这是我想要的结果的示例:

Desired result

matplotlib plot
1个回答
0
投票

在每个点旁边放置一个文本不是可行吗?

像这样

import matplotlib.pyplot as plt
import numpy as np

img = plt.imread("patrick.webp") 

x = np.random.rand(20) * img.shape[1]
y = np.random.rand(20) * img.shape[0]
size = 50 

plt.imshow(img, cmap="gray")

plt.scatter(x, y, size, c="r", marker="+")

for i, (x_coord, y_coord) in enumerate(zip(x, y)):
    plt.text(x_coord, y_coord, str(i+1), fontsize=12, color="yellow", ha="left")

plt.show()

enter image description here

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