Matplotlib: сохранить график в массив NumPy - PullRequest
28 голосов
/ 19 октября 2011

В Python и Matplotlib легко либо отобразить график в виде всплывающего окна, либо сохранить график в виде файла PNG.Как я могу вместо этого сохранить график в массиве в формате RGB?

1 Ответ

53 голосов
/ 19 октября 2011

Это удобный трюк для юнит-тестов и т. П., Когда вам нужно сравнить пиксель с пикселем с сохраненным графиком.

Один из способов - использовать fig.canvas.tostring_rgb, а затем numpy.fromstring с условным значением dtype. Есть и другие способы, но я склоняюсь к этому.

1007 * Е.Г. *

import matplotlib.pyplot as plt
import numpy as np

# Make a random plot...
fig = plt.figure()
fig.add_subplot(111)

# If we haven't already shown or saved the plot, then we need to
# draw the figure first...
fig.canvas.draw()

# Now we can save it to a numpy array.
data = np.fromstring(fig.canvas.tostring_rgb(), dtype=np.uint8, sep='')
data = data.reshape(fig.canvas.get_width_height()[::-1] + (3,))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...