Как ограничить функцию до значения 1 (pyplot)

Есть следующий код:

import matplotlib.pyplot as plt
import numpy as np


def plot_empirical_cdf(sample):
    hist, edges = np.histogram(sample, bins=len(sample))
    Y = hist.cumsum()
    for i in range(len(Y)):
        plt.plot([edges[i], edges[i+1]],[Y[i], Y[i]], c="blue")
    plt.show()


sample = [2, 3, 6, 4, 2, 6, 7, 4, 7, 6, 4, 10, 6, 10, 12, 6, 12, 10, 6, 14]
plot_empirical_cdf(sample)

Результат:

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

Мне нужно, чтобы по оси Y значения были от 0 до 1. Как правильно изменить код?


Ответы (1 шт):

Автор решения: strawdog

Если нужно "впихнуть" в диапазон, то попробуйте так:

import matplotlib.pyplot as plt
import numpy as np


def plot_empirical_cdf(sample):
    hist, edges = np.histogram(sample, bins=len(sample))
    Y = hist.cumsum()
    for i in range(len(Y)):
        ax.plot([edges[i], edges[i+1]],[Y[i], Y[i]], c="blue")
    ax.yaxis.set_major_formatter(FormatStrFormatter('%.2f'))
    ax.set_yticks(ax.get_yticks())
    ax.set_yticklabels(np.round(np.linspace(0, 1, len(ax.get_yticks())), 2))
    plt.show()


sample = [2, 3, 6, 4, 2, 6, 7, 4, 7, 6, 4, 10, 6, 10, 12, 6, 12, 10, 6, 14]
fig, ax = plt.subplots()
plot_empirical_cdf(sample)

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

→ Ссылка