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

如何用Plotly按DataFrame列值绘制自适应多条折线图?

自适应绘制多水果数量随时间变化的折线图

核心思路

无需手动过滤数据,利用可视化库的分组参数或数据透视功能,让程序自动识别fruit列的所有类别并生成对应折线,完全自适应类别数量变化。


步骤1:数据预处理

首先将date列转换为datetime类型,确保x轴按时间顺序正确排列:

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

# 构造示例DataFrame(实际场景可替换为你的数据读取逻辑)
data = {
    'fruit': ['apple', 'banana', 'apple', 'banana'],
    'number': [7, 8, 2, 103],
    'date': ['2013-11-4', '2016-4-6', '2018-7-22', '2020-4-4']
}
df = pd.DataFrame(data)

# 转换日期列格式
df['date'] = pd.to_datetime(df['date'])

步骤2:自适应绘图方案

方案一:Seaborn 自动分组绘图(推荐)

通过hue='fruit'参数自动按水果类别分组,直接生成多条折线,新增水果类别无需修改代码:

# 设置绘图风格
sns.set_style("whitegrid")

# 绘制折线图,自动识别所有水果类别
sns.lineplot(data=df, x='date', y='number', hue='fruit', marker='o')

# 优化图表显示
plt.title('Fruit Number Over Time')
plt.xlabel('Date')
plt.ylabel('Number')
plt.gcf().autofmt_xdate()  # 自动旋转x轴日期标签,避免重叠
plt.show()

方案二:Pandas 透视表绘图

先将数据转为宽表格式,再直接调用plot方法,同样支持自适应类别:

# 透视数据:以date为索引,fruit为列,number为值
pivot_df = df.pivot(index='date', columns='fruit', values='number')

# 绘制折线图
pivot_df.plot(marker='o')

# 优化图表显示
plt.title('Fruit Number Over Time')
plt.xlabel('Date')
plt.ylabel('Number')
plt.gcf().autofmt_xdate()
plt.legend(title='Fruit')
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 19:53:32