Подтвердить что ты не робот

Когда использовать imshow над pcolormesh?

Мне часто приходится создавать визуализацию в стиле кумарта в Python с помощью matplotlib. Matplotlib предоставляет несколько функций, которые, очевидно, делают то же самое. pcolormesh рекомендуется вместо pcolor, но в чем разница (с практической точки зрения в качестве плоттера данных) между imshow и pcolormesh? Каковы плюсы и минусы использования одного над другим? В каких сценариях был бы один или другой явный победитель?

4b9b3361

Ответ 1

В принципе, imshow предполагает, что все элементы данных в вашем массиве должны отображаться с одинаковым размером, тогда как pcolormesh/pcolor связывает элементы массива данных с прямоугольными элементами, размер которых может меняться по прямоугольной сетке.

Если ваши элементы сетки однородны, то imshow с интерполяцией, установленной на "ближайший", будет очень похож на дисплей pcolormesh по умолчанию (без дополнительных аргументов X и Y). Очевидные различия заключаются в том, что ось imshow y будет инвертирована (w.r.t. pcolormesh), и соотношение сторон сохраняется, хотя эти характеристики могут быть изменены так, чтобы они выглядели как результат pcolormesh.

С практической точки зрения pcolormesh более удобно, если вы хотите визуализировать массив данных как ячейки, особенно когда прямоугольная сетка неоднородна или когда вы хотите построить границы/края ячеек. В противном случае imshow более удобно, если у вас есть фиксированный размер ячейки, вы хотите сохранить соотношение сторон, хотите контролировать интерполяцию пикселей или хотите напрямую указать значения RGB.