Как вы непосредственно накладываете график рассеяния поверх jpg-изображения в matplotlib/Python?
Мне нужно быстро построить jpg-кадры, которые будут отображаться как результат алгоритма отслеживания. Companion с фреймами jpg - это текстовые файлы, содержащие простые (x, y) данные, определяющие отслеживаемые цели изображения. Я хотел бы использовать matplotlib для построения jpg-изображений, а затем наложить график рассеяния (x, y) данных, который считывается из текстового файла и сохраняется в списке Pythonic. Ниже приведен код, который будет отображать изображение в формате jpg, но во всех методах очистки, которые я сделал с помощью матплотлиба, scipy и руководств PIL и страниц справки, я не могу найти ничего, что объясняет, как поддерживать это окно графика и просто накладывать диаграмму рассеяния простые маркеры в различных (x, y) местах на изображении. Любая помощь приветствуется.
import matplotlib.pyplot as plt;
im = plt.imread(image_name);
implot = plt.imshow(im);
plt.show()
Ответы
Ответ 1
Функция pyplot.scatter()
была построена по этой причине:
import matplotlib.pyplot as plt
im = plt.imread(image_name)
implot = plt.imshow(im)
# put a blue dot at (10, 20)
plt.scatter([10], [20])
# put a red dot, size 40, at 2 locations:
plt.scatter(x=[30, 40], y=[50, 60], c='r', s=40)
plt.show()
Дополнительную информацию см. в документации .
Ответ 2
это должно работать:
import matplotlib.pyplot as plt
im = plt.imread('test.png')
implot = plt.imshow(im)
plt.plot([100,200,300],[200,150,200],'o')
plt.show()
помните, что каждый пиксель в изображении представляет собой одну единицу по осям x, y. 'o'
является сокращенным способом получения функции plot
для использования кругов вместо строк.
Ответ 3
Я знаю, что на это был дан ответ, но аналогично работает zorder. Это здорово, если вы хотите положить что-то поверх диаграммы рассеяния или под ним.
import matplotlib as plt
im = plt.imread(image_name)
plt.imshow(im,zorder=1)
plt.scatter(x,y,zorder=2)
plt.show()
нижний zorder означает, что он ниже других вещей