Масштабирование оси фигуры в Matplotlib - PullRequest
0 голосов
/ 24 апреля 2018

В настоящее время я пытаюсь визуализировать матрицу в Python, используя Matplotlib, однако проблема в том, что количество столбцов намного больше, чем количество строк, поэтому, когда я визуализирую его, ось у становится маленькой,как видно на следующем рисунке.enter image description here

Матрица представляет собой pandas DataFrame с 23 строками и 1880 столбцами.Я пытался визуализировать это с помощью imshow() и matshow, но оба метода неловко масштабируют картинку.Я также пытался tight_layout(), но это ничего не меняет.

Могу ли я что-нибудь сделать для масштабирования графика?

Вот код, который я использую для построения графика:

plt.figure()
ax = plt.gca()
plt.imshow(df.drop(["column2"], axis=1).transpose(), cmap='hot', interpolation='nearest')
plt.savefig("Test.pdf")

Ответы [ 2 ]

0 голосов
/ 24 апреля 2018

imshow знает аргумент ключевого слова aspect, который можно установить на auto, чтобы сделать это:

plt.imshow(... , aspect='auto')
0 голосов
/ 24 апреля 2018

Я нашел хорошее соотношение сторон, используя функцию pcolor.Ваш фрагмент кода станет следующим:

plt.pcolor(df.drop(["column2"], axis=1).transpose(), cmap='hot')
plt.savefig("Test.pdf")

К сожалению, ключевое слово интерполяции не поддерживается, и я не знаю, нужно ли вам это.Это результат, который я получаю с некоторыми случайными данными: visualization with good aspect ratio

...