Matplotlib не отображает данные ровно - PullRequest
0 голосов
/ 04 апреля 2019

Я использую matplotlib.imshow для рендеринга двумерного массива целочисленных значений в виде тепловой карты.Проблема в том, что пиксели на конечном изображении не полностью квадратные.Иногда они немного прямоугольные.Это большая проблема для меня, так как я использую эту «тепловую карту» в качестве наложения на карту, и такое поведение создает странный визуальный сбой.

enter image description here

Я рендерил это так:

fig = plt.imshow(data2d, cmap=cmap, norm=norm, aspect='equal', interpolation='none')
plt.axis('off')
fig.axes.get_xaxis().set_visible(False)
fig.axes.get_yaxis().set_visible(False)
fig.axes.set_adjustable('box-forced')
plt.savefig("output.png", bbox_inches='tight', pad_inches=0, dpi=72)

Я думал, что установка атрибута «aspect» на «равный» позаботится о том, чтобы пиксели были точно квадратными.Я заметил, что если я увеличу DPI, эффект будет менее заметным, так как будет работать больше пикселей, но время рендеринга станет проблемой.

Я был бы рад, если бы кто-то мог указать мне направильное направление.

1 Ответ

0 голосов
/ 09 апреля 2019

В итоге я заменил matplotlib на rasterio и сам обработал цветовую карту. Это определенно непростое решение ...

...