Если вы будете sh строить только гистограмму, вы можете использовать следующий код
import matplotlib.pyplot as plt
plt.hist(list1,bins=[0,2.5,5,7.5,10,12.5,15,17.5])
Иначе, если вы sh создадите кадр данных с ячейками, соответствующими их частоте, вы можете следуйте этому:
import pandas as pd
import numpy as np
list1=[10.16, 11.13, 15.01, 14.64, 13.8, 14.1, 14.65, 1.36, 1.43, 1.63, 1.7, 2.07]
binned=pd.cut(np.array(list1),bins=[0,2.5,5,7.5,10,12.5,15,17.5])
'''output: [(10.0, 12.5], (10.0, 12.5], (15.0, 17.5], (12.5, 15.0], (12.5, 15.0], ..., (0.0, 2.5], (0.0, 2.5], (0.0, 2.5], (0.0, 2.5], (0.0, 2.5]]
Length: 12
Categories (7, interval[float64]): [(0.0, 2.5] < (2.5, 5.0] < (5.0, 7.5] < (7.5, 10.0] < (10.0, 12.5] < (12.5, 15.0] < (15.0, 17.5]]'''
df=pd.DataFrame({'value':list1,'bins':binned})
df.groupby('bins')['value'].count()
Объяснение: pandas .cut () помогает нам заменить ячейки, соответствующие значениям в list1. Затем создайте фрейм данных, используя «list1» и «binned». Сгруппируйте в «binned» и посчитайте частоту в list1.