Изображение в ax.imshow () перевернуто, но изменение ключевого слова origin не решает проблему - PullRequest
0 голосов
/ 11 апреля 2019

Изображение внутри вспомогательного сюжета matplotlib инвертировано.Изменение ключевого слова origin с «upper» на «lower» не имеет значения.Когда я строю изображение отдельно, оно отображается нормально.

Я пытаюсь визуализировать изображение за графиком рассеяния и контура в matplotlib.Эта визуализация представляет собой один из шести различных участков.Проблема в том, что изображение появляется вверх ногами, и я попытался изменить ключевое слово origin с «upper» на «lower», но странным образом это не имеет значения в моем случае.Может ли кто-нибудь дать мне понять, почему это происходит и как это исправить?Ниже приведена соответствующая часть кода, который я использую.Изображение представляет собой массив 560 X 550 X 3.

Код проблемы

fig, axes = plt.subplots(nrows=3, ncols=2) 

"plot 1"
Dataframe[scorer][bodyparts2plot[0]].plot.scatter('x', 'y', 
               c = '#a98d19', ax=axes[0,0], xlim = (0,560), ylim = (0,550),
               figsize= (20,20), title = bodyparts2plot[3], alpha = 0.1) 
axes[0,0].imshow(image) # plot image
df = Dataframe[scorer][bodyparts2plot[0]][['x','y']]
sns.kdeplot(df,cmap='jet', n_levels=50,ax=axes[0,0]) # plot contour

"plot 2"
Dataframe[scorer][bodyparts2plot[1]].plot.scatter('x', 'y',
                c = '#006666', ax=axes[0,1], xlim = (0,560), ylim = (0,550),
                figsize= (20,20), title = bodyparts2plot[4], alpha = 0.1) 

axes[0,1].imshow(image) # plot image
df = Dataframe[scorer][bodyparts2plot[1]][['x','y']]
sns.kdeplot(df,cmap='jet', n_levels=50, ax=axes[0,1]) # plot contour

Изменение ключевого слова origin в axes.imshow () на «верхний» или «нижний» не имеет значения

Это работает, ноне то, что я хочу

, когда я делаю

plt.imshow(image)

, изображение показывает хорошо.

Это текущая ситуация: изображение с проблемой

Я хочу, чтобы изображение было вверх ногами.Вот так: пример но с наложением всего остального.

1 Ответ

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

Ваша проблема с вашим первоначальным вызовом панды df.plot.scatter(), точнее с тем фактом, что вы указали в нем de ylim=.Вы заставляете ось начинаться с 0 внизу, тогда как imshow() изображает с 0 вверху изображения.

Изменение на df.plot.scatter(..., ylim=(550,0), ...) должно решить проблему

...