Seaborn分布绘图异常求助:Reddit帖子分数分布无法正确展示
绘制Reddit帖子分数分布的问题
我尝试绘制Reddit帖子的分数分布,但始终无法得到正确结果。我的DataFrame示例如下:
df = pd.DataFrame({"score": [12, 19, 25987, 887, 887, 1], "author": ["xxx", "x", "xxx", "xx", "xxxx", "x"]})
实际数据约有300,000条数据点。
尝试的两种方案
第一种方案
plt.figure(figsize=(10, 6)) sns.displot(data=df, x="score", bins=30, kde=True) plt.title('Distribution of Post Scores') plt.xlabel('Score') plt.ylabel('Frequency') plt.show()
得到的图表中,绝大多数数据集中在左侧低分段,右侧高分数段的分布几乎无法看清。
第二种方案
score_freq = df['score'].value_counts() plt.figure(figsize=(10, 6)) sns.displot(score_freq, kind="kde", bw_adjust=30) plt.title('Distribution of Post Scores') plt.xlabel('Score') plt.ylabel('Frequency') plt.show()
这个方案的结果稍好,但仍有错误:我的数据中没有低于0的分数,图表却显示了低至-100,000的区间,而实际数据最高分数可达299,489。
数据更新说明
执行df['score'].sort_values()后,可见真实数据的分数均为非负值,且绝大多数集中在低分段,仅有极少数极高分数;执行df['score'].value_counts()后,可见低分数的出现频率极高,高分数的频率极低。
内容的提问来源于stack exchange,提问作者Louis
相关产品推荐
相关产品推荐

