Как включить отрицательные значения по оси y с помощью matplotlib?

#python #python-3.x #matplotlib

#python #python-3.x #matplotlib

Вопрос:

Итак, я создаю точечный график, и в одном из моих столбцов данных много отрицательных значений. Это моя ось y.
Однако, когда я строю график, мои оси начинаются с 0. Как мне заставить его начинаться с фактического наименьшего значения?
Моя диаграмма

Ответ №1:

Используйте plt.ylim() вместе со встроенными min() max() функциями и:

 import matplotlib.pyplot as plt

x = [38, -21, 37, 54, 10, 10, -40, -37, -24, 53, -10, 45, -32, -37, 12, -29, 18, 5, -45, 19, 48, 48, 27, -10, -17, -15, -25, -44, 41, -8]
y = [31, -43, -3, 18, -48, 4, -54, -34, -42, 13, 31, -4, 17, 3, 16, -30, -23, -27, -9, 13, -40, 13, 0, -41, 5, -26, 16, -9, 40, 16]

plt.ylim(min(y), max(y))
plt.scatter(x, y)
plt.show()
 

Вывод:

введите описание изображения здесь

Комментарии:

1. @Zelix75 Да 🙂 Просто добавьте plt.xlim(min(x), max(x)) прямо над plt.ylim(min(y), max(y)) .

2. Сработало, однако мне пришлось сделать минимальный аргумент ylim = -10, так как в противном случае видимой разницы не было

3. @Zelix75 О, хорошо! Некоторые люди предпочитают иметь отступы вокруг границ, так plt.ylim(min(y), max(y)) что это может быть plt.ylim(min(y) - 10, max(y) 10) .

4. Как мне установить определенный масштаб для моей оси y ?. Например, я хочу изменить его на 5 или что-то в этом роде

5. @Zelix75 Используйте pot.yticks() с range , третьим параметром range является масштаб: plt.yticks(range(min(y), max(y), 5))

Ответ №2:

Быстрым решением может быть matplotlib.pyplot.ylim() . Получите наименьшее y значение и передайте его в this, чтобы установить его в качестве наименьшего y значения оси.

Что-то вроде matplotlib.pyplot.ylim(bottom= np.min(y_array)) .

Смотрите https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.ylim.html для получения более подробной информации.

Ответ №3:

Установите свой лимит.
Например : plt.ylim(-5, 5)