Мне часто приходится создавать визуализацию в стиле кумарта в Python с помощью matplotlib. Matplotlib предоставляет несколько функций, которые, очевидно, делают то же самое. pcolormesh
рекомендуется вместо pcolor
, но в чем разница (с практической точки зрения в качестве плоттера данных) между imshow
и pcolormesh
? Каковы плюсы и минусы использования одного над другим? В каких сценариях был бы один или другой явный победитель?
Когда использовать imshow над pcolormesh?
Ответ 1
В принципе, imshow
предполагает, что все элементы данных в вашем массиве должны отображаться с одинаковым размером, тогда как pcolormesh
/pcolor
связывает элементы массива данных с прямоугольными элементами, размер которых может меняться по прямоугольной сетке.
Если ваши элементы сетки однородны, то imshow
с интерполяцией, установленной на "ближайший", будет очень похож на дисплей pcolormesh
по умолчанию (без дополнительных аргументов X
и Y
). Очевидные различия заключаются в том, что ось imshow
y будет инвертирована (w.r.t. pcolormesh
), и соотношение сторон сохраняется, хотя эти характеристики могут быть изменены так, чтобы они выглядели как результат pcolormesh
.
С практической точки зрения pcolormesh
более удобно, если вы хотите визуализировать массив данных как ячейки, особенно когда прямоугольная сетка неоднородна или когда вы хотите построить границы/края ячеек. В противном случае imshow
более удобно, если у вас есть фиксированный размер ячейки, вы хотите сохранить соотношение сторон, хотите контролировать интерполяцию пикселей или хотите напрямую указать значения RGB.