如何使用Pandas或Matplotlib绘制多类别时间序列折线图?
多类别时间序列折线图实现方案
以下是几种常用工具的实现代码,均能满足你的需求:X轴为时间序列、Y轴为num、每个category对应一条折线。
方法1:Pandas + Matplotlib
适合快速生成静态图表:
import pandas as pd import matplotlib.pyplot as plt # 加载数据(替换为你的数据来源,比如CSV/Excel) df = pd.read_csv('your_data.csv') # 将date列转换为时间格式,确保X轴按时间排序 df['date'] = pd.to_datetime(df['date']) # 按类别分组绘制折线 plt.figure(figsize=(10, 6)) for category, group_data in df.groupby('category'): plt.plot(group_data['date'], group_data['num'], label=category) # 配置图表样式 plt.xlabel('时间') plt.ylabel('数值') plt.title('多类别时间序列折线图') plt.legend(title='类别') plt.xticks(rotation=45) # 旋转X轴标签避免重叠 plt.tight_layout() # 自动调整布局 plt.show()
方法2:Seaborn
代码更简洁,内置样式更美观:
import pandas as pd import seaborn as sns import matplotlib.pyplot as plt df = pd.read_csv('your_data.csv') df['date'] = pd.to_datetime(df['date']) plt.figure(figsize=(10, 6)) # 直接通过hue参数区分类别 sns.lineplot(data=df, x='date', y='num', hue='category') plt.xlabel('时间') plt.ylabel('数值') plt.title('多类别时间序列折线图') plt.xticks(rotation=45) plt.tight_layout() plt.show()
方法3:Plotly(交互式图表)
支持鼠标悬停查看数据、缩放等交互功能:
import pandas as pd import plotly.express as px df = pd.read_csv('your_data.csv') df['date'] = pd.to_datetime(df['date']) # 一键生成交互式折线图 fig = px.line(df, x='date', y='num', color='category', labels={'date': '时间', 'num': '数值'}, title='多类别时间序列折线图') # 旋转X轴标签 fig.update_layout(xaxis_tickangle=-45) fig.show()
内容的提问来源于stack exchange,提问作者Karl T
相关产品推荐
相关产品推荐

