You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何绘制lineplot折线图展示各年度的歌曲数量

解决方案

核心原因

sns.countplot会自动对指定列做分组计数的聚合运算,但lineplot需要显式传入X轴、Y轴两个维度的列数据,所以你需要先手动统计每年对应的歌曲数量,再传入lineplot即可。

完整可运行代码

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

# 读取数据集
df = pd.read_csv('https://storage.googleapis.com/introduction-to-data-science/spotify-dataset.csv')

# 筛选1921年及之后的数据
df = df[df['year'] >= 1921]

# 统计每年的歌曲数量,生成带year和对应歌曲数的新数据表
year_count = df.groupby('year', as_index=False).agg(song_count=('year', 'count'))

# 绘制折线图
plt.figure(figsize = (40,15))
sns.lineplot(data=year_count, x="year", y="song_count")
# 可选操作:添加每个点的数值标签,和countplot的展示效果更一致
for x, y in zip(year_count['year'], year_count['song_count']):
    plt.text(x, y, str(y), ha='center', va='bottom')
plt.show()

补充说明

  • 如果不需要过滤1921年之前的数据,删除df = df[df['year'] >= 1921]这一行即可
  • 你也可以用year_count = df['year'].value_counts().sort_index().reset_index(name='song_count')实现和上述groupby完全一致的统计效果

内容的提问来源于stack exchange,提问作者Rodrigo Romero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 02:45:03