изменение масштаба участка matplotlib в python - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь создать диаграмму с фоном в виде карты цветов в python. Я использую следующий код:

import numpy as np
from matplotlib import cm
import matplotlib.pyplot as plt

x = np.arange(1,50,0.01)
y = 1000*np.sin(x)
yarr = np.vstack((x,))
plt.imshow(yarr, extent=(min(x),max(x), min(y),max(y)), cmap=cm.hot)
plt.plot(x, y, color='cornflowerblue',lw=4)

Однако получается изображение, похожее на:

enter image description here

Есть ли способ сделать график «нормальным»? То есть, чтобы я мог понять, что происходит (делая область оси более «квадратной»).

1 Ответ

1 голос
/ 25 февраля 2020

Проблема в том, что plt.imshow() ожидает "квадратные" пиксели, чтобы сохранить соотношение сторон изображения (см. Документацию ). Используйте опцию aspect='auto', чтобы получить желаемый результат:

import numpy as np
from matplotlib import cm
import matplotlib.pyplot as plt

x = np.arange(1,50,0.01)
y = 1000*np.sin(x)
yarr = np.vstack((x,))
plt.imshow(yarr, extent=(min(x),max(x), min(y),max(y)), cmap=cm.hot, aspect="auto")
plt.plot(x, y, color='cornflowerblue',lw=4)

Matplotlib igure

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...