Если единственной целью использования matplotlib здесь является получение цветовой карты в массиве, проще всего использовать plt.imsave
.
import numpy as np
import matplotlib.pyplot as plt
data = np.random.rand(256,65000)
plt.imsave("output.png", data, cmap="viridis")
. Это создает изображение в формате png с точными размерами в пикселяхмассив.
Если изображение должно содержать другие графические элементы, созданные с помощью matplotlib, оно становится намного сложнее.( Я был бы рад дополнить этот ответ другими вариантами, но только при необходимости, поэтому лучше оставить комментарий в этом случае. )