Сделать функцию распределения графиком
Я написал код, который генерирует ряд распределения:

x_list_repeats = [70,75,75,75,85,95,105,125,125,125,130,130,135,135,135,135,145,145,150,150,150,150,160,165,180]
hist, edges = np.histogram(x_list_repeats, bins=len(x_list_repeats))
Y = hist.cumsum()
for i in range(len(Y)):
plt.plot([edges[i], edges[i + 1]], [Y[i], Y[i]], c="orange")
Но не могу сделать из него график (пример построил в Excel, для тех же значений)
Ответы (2 шт):
Автор решения: A_Vaclav
→ Ссылка
Вам нужно рассчитать необходимые списки координат (как в экселе). Вот я построил график на примере вашего кода:
import numpy as np
import matplotlib.pyplot as plt
x_list_repeats = [70,75,75,75,85,95,105,125,125,125,130,130,135,
135,135,135,145,145,150,150,150,150,160,165,180]
hist, edges = np.histogram(x_list_repeats, bins=len(x_list_repeats))
Y = hist.cumsum()
X_mid = []
for i in range(len(Y)):
plt.plot([edges[i], edges[i + 1]], [Y[i], Y[i]], c="orange")
X_mid.append(sum([edges[i], edges[i + 1]]) / 2)
plt.plot(x_list_repeats, Y, c = 'green')
#x_list_repeats - список координат Х, Y - соответственно У
# c = 'green' - зеленым цветом
plt.plot(X_mid, Y, c = 'red')
Автор решения: CrazyElf
→ Ссылка
Если сделать так, чтобы по x и по y было одинаковое кол-во точек для отрисовки, то нет никаких проблем нарисовать сплошной график:
YY = np.hstack((Y, Y[-1:]))
plt.plot(edges, YY, c="orange")


