y
не является действительным аргументом для bar
графиков.Вам необходимо указать height
.Поскольку у вас есть непрерывные ячейки с равным интервалом, вы можете указать ширину ячейки и выравнивание по краям, чтобы они выглядели так, как должны.
Образцы данных
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = pd.DataFrame({'price_variation': np.random.normal(0,0.12,10000)})
ranges = (-0.4, -0.35, -0.3, -0.25, -0.2, -0.15, -0.1, -0.05, 0, 0.05, 0.1, 0.15 ,0.2, 0.25, 0.3, 0.35, 0.4)
number_observations = df.groupby(pd.cut(df['price_variation'], ranges)).count()
График
# Get the bins and alignment correct
plt.bar(x=ranges[:-1],
height=number_observations.price_variation.values,
width=np.diff(ranges)[0],
ec='k',
align='edge')
plt.show()
