未能在 sns.histplot 中绘制直方图

Fail to draw a Histogram in sns.histplot

data = {'year':  ['2010', '2011','2012','2013','2014','2015','2016','2017','2018','2019','2020','2021'],
        'points': [2260, 1499, 1834,3712,6830,7139.0,8085,6928,6903,8631,5476,1271]}
df = pd.DataFrame(data)
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="darkgrid")
sns.histplot(data=df['points'],x=df['year'],color="blue")
plt.show()

这是我的代码,但图表看起来不像我希望的那样。我希望它看起来像 x 轴标记为年份,y 轴显示不同的点高。如何解决?

为了能够计算 bin,您需要一个数值作为 x:

sns.histplot(data=df['points'], x=df['year'].astype(int), color="blue")

或者您可能根本不需要直方图(显示分布),而是 barplot:

df.plot.bar(x='year', y='points')

我认为您使用了错误的情节类型,barplot 怎么样?

sns.set(style="darkgrid")
ax = sns.barplot(x="year", y="points", data=data)
plt.show()