Pandas作为Python数据分析的核心库,内置了基于Matplotlib的绘图接口,通过DataFrame的plot方法可以快速生成各类图表,其中折线图的绘制只需要设置kind参数为line即可,不需要额外编写复杂的Matplotlib绘图代码。
Pandas绘制折线图的基础用法
首先需要准备示例数据,这里创建一个包含日期和对应数值的DataFrame,用来演示折线图的绘制过程:
import pandas as pd
import numpy as np
# 构造示例数据
data = {
'date': pd.date_range(start='2024-01-01', periods=10, freq='D'),
'value1': np.random.randint(10, 50, size=10),
'value2': np.random.randint(20, 60, size=10)
}
df = pd.DataFrame(data)
df.set_index('date', inplace=True)
# 绘制折线图,kind='line'表示折线图,默认就是line可以省略
df.plot(kind='line')
运行上面的代码后,会自动弹出Matplotlib的图表窗口,展示出value1和value2两个字段随日期变化的折线。如果不指定kind参数,默认绘制的也是折线图,所以df.plot()和df.plot(kind='line')的效果是一致的。
自定义折线图的常用参数
df.plot方法支持很多参数来调整折线图的样式,常用的参数包括:
- title:设置图表标题
- xlabel/ylabel:设置x轴和y轴的标签
- figsize:设置图表的尺寸,格式为(宽度, 高度)
- color:设置折线的颜色,可以是颜色名称或十六进制颜色码
- linewidth:设置折线的宽度
- legend:是否显示图例,默认是True
下面是一个自定义样式的示例:
# 自定义折线图样式
df.plot(
kind='line',
title='每日数值变化趋势',
xlabel='日期',
ylabel='数值',
figsize=(10, 6),
color=['#1f77b4', '#ff7f0e'],
linewidth=2,
legend=True
)
单条折线图的绘制
如果只需要展示单个数据列的折线,可以在plot方法前指定列名,或者通过y参数指定要绘制的列:
# 只绘制value1的折线 df['value1'].plot(kind='line', title='value1变化趋势', figsize=(8, 4)) # 或者指定y参数 df.plot(y='value1', kind='line', title='value1变化趋势', figsize=(8, 4))
进阶配置:调整坐标轴和数据点
如果需要进一步调整图表的细节,比如添加网格线、标记数据点、调整x轴日期显示格式,可以结合Matplotlib的pyplot模块进行配置:
import matplotlib.pyplot as plt
# 绘制折线图
ax = df.plot(kind='line', figsize=(10, 6), marker='o', markersize=6)
# 添加网格线
ax.grid(True, linestyle='--', alpha=0.7)
# 调整x轴日期标签旋转角度,避免重叠
plt.xticks(rotation=45)
# 设置图表标题和坐标轴标签
ax.set_title('每日数值变化趋势', fontsize=14)
ax.set_xlabel('日期', fontsize=12)
ax.set_ylabel('数值', fontsize=12)
# 显示图表
plt.tight_layout()
plt.show()
在上面的代码中,marker参数用来设置数据点的标记样式,这里用o表示圆形标记,markersize设置标记的大小。通过获取plot方法返回的Axes对象,就可以调用Matplotlib的原生方法对图表做更细致的调整。
常见问题说明
在使用df.plot绘制折线图的时候,有几个需要注意的点:
- 如果DataFrame的索引不是数值或者日期类型,x轴会默认使用行索引,需要提前把对应的列设置为索引才能得到正确的x轴刻度。
- 如果数据中存在缺失值,折线会在缺失值的位置断开,需要提前用
fillna方法处理缺失值。 - df.plot方法默认会调用Matplotlib的绘图引擎,所以如果需要使用其他绘图后端,需要提前做对应的配置。
需要注意的是,Pandas的plot接口本质上是Matplotlib的封装,所以所有Matplotlib支持的图表属性,都可以通过返回的Axes对象进行配置,兼顾了易用性和灵活性。
Pandasdf_plotMatplotlib折线图修改时间:2026-07-01 10:06:27