Следующий MWE
создает простой график рассеяния:
import numpy as np
import matplotlib.pyplot as plt
# Generate some random two-dimensional data:
m1 = np.random.normal(size=100)
m2 = np.random.normal(scale=0.5, size=100)
# Plot data with 1.0 max limit in y.
plt.figure()
# Set x axis limit.
plt.xlim(0., 1.0)
# Plot points.
plt.scatter(m1, m2)
# Show.
plt.show()
На этом графике пределы оси x установлены на [0., 1.]
. Мне нужно установить верхний предел оси y равным 1. оставляя нижний предел до любого минимального значения в m2
(т.е. Пусть python
определяет нижний предел).
В этом конкретном случае я мог бы просто использовать plt.ylim(min(m2), 1.0)
, но мой фактический код намного сложнее, поскольку много построенных объектов, поэтому это не вариант.
Я пробовал настройку:
plt.ylim(top=1.)
а также:
plt.gca().set_ylim(top=1.)
как указано здесь Как установить "авто" для верхнего предела, но сохраните фиксированный нижний предел с помощью matplotlib.pyplot, но ни одна из команд не работает. Они оба правильно установили верхний предел в оси y равным 1. но они также вынуждают нижний предел 0., который я не хочу.
Я использую Python 2.7.3
и Matplotlib 1.2.1
.