Skip to content

基础绘图

Pandas 集成了 Matplotlib,可以直接对数据进行可视化。

基础设置

python
import pandas as pd
import matplotlib.pyplot as plt

# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 创建数据
df = pd.DataFrame({
    '月份': ['1月', '2月', '3月', '4月', '5月'],
    '销售额': [100, 120, 110, 130, 140],
    '利润': [20, 25, 22, 28, 30]
})

折线图

python
# 基础折线图
df.plot(x='月份', y='销售额', kind='line', marker='o')
plt.title('月度销售额趋势')
plt.xlabel('月份')
plt.ylabel('销售额')
plt.show()

# 多线折线图
df.plot(x='月份', y=['销售额', '利润'], kind='line', marker='o')
plt.title('月度销售与利润趋势')
plt.legend()
plt.show()

柱状图

python
# 基础柱状图
df.plot(x='月份', y='销售额', kind='bar')
plt.title('月度销售额')
plt.show()

# 水平柱状图
df.plot(x='月份', y='销售额', kind='barh')
plt.title('月度销售额')
plt.show()

# 堆叠柱状图
df.plot(x='月份', y=['销售额', '利润'], kind='bar', stacked=True)
plt.title('月度销售与利润')
plt.show()

饼图

python
# 基础饼图
df.set_index('月份')['销售额'].plot(kind='pie', autopct='%1.1f%%')
plt.title('销售额占比')
plt.ylabel('')
plt.show()

散点图

python
df_scatter = pd.DataFrame({
    '广告费': [10, 15, 12, 18, 20],
    '销售额': [100, 150, 120, 180, 200]
})

# 散点图
df_scatter.plot(x='广告费', y='销售额', kind='scatter', s=100)
plt.title('广告费与销售额关系')
plt.show()

直方图

python
import numpy as np

df_hist = pd.DataFrame({
    '成绩': np.random.normal(75, 10, 1000)
})

# 直方图
df_hist['成绩'].plot(kind='hist', bins=20, edgecolor='black')
plt.title('成绩分布')
plt.xlabel('分数')
plt.ylabel('频数')
plt.show()

# 密度图
df_hist['成绩'].plot(kind='density')
plt.title('成绩密度分布')
plt.show()

箱线图

python
df_box = pd.DataFrame({
    'A班': np.random.normal(80, 5, 100),
    'B班': np.random.normal(75, 8, 100),
    'C班': np.random.normal(85, 6, 100)
})

# 箱线图
df_box.plot(kind='box')
plt.title('各班成绩分布')
plt.ylabel('分数')
plt.show()

面积图

python
df_area = pd.DataFrame({
    '产品A': [100, 120, 110, 130],
    '产品B': [80, 90, 100, 110]
}, index=['Q1', 'Q2', 'Q3', 'Q4'])

# 面积图
df_area.plot(kind='area', alpha=0.5)
plt.title('季度销售面积图')
plt.show()

样式设置

python
# 设置图形大小
df.plot(x='月份', y='销售额', kind='bar', figsize=(10, 6))

# 设置颜色
df.plot(x='月份', y='销售额', kind='bar', color='skyblue')

# 设置网格
df.plot(x='月份', y='销售额', kind='line', grid=True)

# 设置样式
plt.style.use('seaborn-v0_8')
df.plot(x='月份', y='销售额', kind='bar')
plt.show()

Pandas 的基础绘图功能可以快速创建数据可视化,适合探索性数据分析。