Я недавно мигрировал из Matlab в Python и недавно работал с Numpy и Matplotlib.Я перекодировал один из моих сценариев из Matlab, который использует функцию contlaf в Matlab, в Python, используя соответствующую функцию contourf в matplotlib.Мне удалось воспроизвести вывод в Python, за исключением того, что контурные графики не являются точно такими же, по неизвестной мне причине.Когда я запускаю функцию contourf в matplotlib, я получаю эту в остальном красивую фигуру, но у нее есть острые края на уровнях контура сверху и снизу, которых там быть не должно (см. Рис. 1 ниже, matplotlib-output).Теперь, когда я экспортирую массивы, которые я использовал в Python, в Matlab (т. Е. Точно такой же набор данных, который использовался для генерации matplotlib-contourf-plot) и использую функцию Contourf в Matlab, я получаю немного другой вывод без этих четких контуров-уровни ребер (см. рисунок 2 ниже, выход Matlab).Я использовал одинаковое количество уровней на обеих фигурах.На рисунке 3 я сделал диаграмму рассеяния тех же данных, которая показывает, что в данных нет таких острых краев, как показано на контурной диаграмме (я добавил контурные линии только для справки).Пример набора данных можно скачать по ссылке Dropbox, приведенной ниже.Набор данных содержит три txt-файла: X, Y, Z. Каждый из них представляет собой массивы 500x500, которые можно напрямую использовать с contourf (), то есть plt.contourf (X, Y, Z, ...).Код, который использовался, был
plt.contourf(X,Y,Z,10, cmap=plt.cm.jet)
plt.contour(X,Y,Z,10,colors='black', linewidths=0.5)
plt.axis('equal')
plt.axis('off')
У кого-нибудь есть идея, почему это происходит?Буду признателен за любую информацию по этому поводу!
Приветствия,
Юсси
Ниже приведены подробности моей настройки:
Python 3.7.0
IPython 6.5.0
matplotlib 2.2.3
Выход Matplotlib
Matlabвывод
Matplotlib-scatter Ссылка на набор данных