Python编程实战——Python实用工具与库:Matplotlib数据可视化

在数据分析中,数据可视化 是最直观、最具洞察力的环节。它能让复杂的数字和趋势以图形化的方式呈现,从而帮助我们更好地理解数据。 在Python生态中,Matplotlib 是最基础、最经典的可视化库,被广泛用于科学绘图、报告展示与仪表盘开发。 本篇博客将带你快速掌握Matplotlib的使用方法,从基础绘图到多图布局,再到美化技巧,轻松实现数据的可视化展示。


一、Matplotlib简介

Matplotlib 是Python的二维绘图库,可以创建各种静态、动态和交互式图表。 它常与 Pandas 和 Numpy 配合使用,用于数据分析、科研和可视化报告。

Matplotlib的特点:

  • 支持折线图、柱状图、饼图、散点图等多种类型;
  • 可高度自定义图形样式;
  • 可输出为PNG、SVG、PDF等格式;
  • 与Jupyter Notebook兼容性极佳。

二、安装与导入

bash 复制代码
pip install matplotlib

导入常规写法:

python 复制代码
import matplotlib.pyplot as plt
import numpy as np

三、绘制第一个图表

python 复制代码
import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [10, 20, 25, 30, 45]

plt.plot(x, y)
plt.title("销售趋势图")
plt.xlabel("月份")
plt.ylabel("销售额")
plt.show()

这段代码绘制了一条简单的折线图。 plt.plot() 用于画折线,plt.show() 用于显示图形。


四、图表类型速览

1. 折线图(Line Chart)

适合展示趋势变化。

python 复制代码
plt.plot(x, y, marker='o', color='blue', linestyle='--', label="销售额")
plt.legend()
plt.show()

2. 柱状图(Bar Chart)

适合展示分类数据对比。

python 复制代码
categories = ["苹果", "香蕉", "橙子", "葡萄"]
sales = [80, 60, 70, 90]

plt.bar(categories, sales, color="skyblue")
plt.title("水果销售对比")
plt.xlabel("水果")
plt.ylabel("销量")
plt.show()

3. 饼图(Pie Chart)

适合展示比例分布。

python 复制代码
labels = ['A产品', 'B产品', 'C产品']
sizes = [40, 35, 25]

plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)
plt.title("产品市场占比")
plt.show()

4. 散点图(Scatter Plot)

适合展示数据分布和相关性。

python 复制代码
x = np.random.rand(50)
y = np.random.rand(50)

plt.scatter(x, y, color='green')
plt.title("散点分布示例")
plt.show()

五、自定义图表样式

Matplotlib提供丰富的样式控制,让图表更专业美观。

python 复制代码
plt.plot(x, y, color='red', linewidth=2, marker='o', markersize=6)
plt.grid(True, linestyle='--', alpha=0.5)
plt.title("趋势线示例", fontsize=14)
plt.xlabel("时间(月)", fontsize=12)
plt.ylabel("增长率(%)", fontsize=12)
plt.show()

六、在同一图中绘制多条曲线

python 复制代码
x = np.arange(1, 6)
y1 = x * 2
y2 = x ** 2

plt.plot(x, y1, label="线性增长", color='blue')
plt.plot(x, y2, label="平方增长", color='orange')
plt.legend()
plt.title("不同增长趋势对比")
plt.show()

七、子图布局(subplot)

当需要展示多个图表时,可以使用subplot创建多图布局。

python 复制代码
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

plt.subplot(2, 1, 1)
plt.plot(x, y1, color='red')
plt.title("正弦函数")

plt.subplot(2, 1, 2)
plt.plot(x, y2, color='blue')
plt.title("余弦函数")

plt.tight_layout()
plt.show()

八、结合Pandas快速绘图

Pandas内置了Matplotlib接口,可直接对DataFrame绘图。

python 复制代码
import pandas as pd

data = {
    "月份": ["1月", "2月", "3月", "4月", "5月"],
    "销售额": [100, 150, 120, 180, 200],
    "利润": [30, 50, 40, 70, 90]
}
df = pd.DataFrame(data)

df.plot(x="月份", y=["销售额", "利润"], kind="bar")
plt.title("销售与利润分析")
plt.show()

九、实战:绘制年度销售趋势图

python 复制代码
import pandas as pd
import matplotlib.pyplot as plt

data = {
    "月份": range(1, 13),
    "销售额": [320, 450, 500, 610, 720, 830, 900, 870, 790, 660, 550, 430]
}

df = pd.DataFrame(data)

plt.figure(figsize=(8,5))
plt.plot(df["月份"], df["销售额"], color='orange', marker='o', linewidth=2)
plt.title("2024年度销售趋势")
plt.xlabel("月份")
plt.ylabel("销售额(万元)")
plt.grid(True, linestyle='--', alpha=0.6)
plt.show()

输出的折线图能直观展示全年销售走势,为企业决策提供直观依据。


十、小结

通过本篇文章,你已经掌握了:

  • Matplotlib的基本绘图方法
  • 折线图、柱状图、饼图、散点图等常见图表
  • 图表美化与多图布局
  • Pandas结合Matplotlib的快速绘图方法
  • 实战案例:年度销售趋势分析

Matplotlib的强大在于它的可扩展性与灵活性。 当你熟练掌握它后,可以进一步学习 Seaborn 和 Plotly 等高级可视化库,构建更专业、更美观的数据展示界面。


相关推荐
浮链序几秒前
Shopify 把 10 亿商品开放给任意 agent 了:我用零依赖 Python 撸了个带预算闸门的代购网关
后端·代码规范
lovingsoft2 分钟前
Chrome Lighthouse 详解
前端·chrome
Qlly12 分钟前
全栈工程师怎么接需求?从一句「加个功能」聊到能开发、能验收
前端·后端
马可家的菠萝16 分钟前
你的微信“文件传输助手”,是不是已经成了第二个网盘?
前端·后端·架构
略略略啦17 分钟前
Vibe Coding 基于Spec DD和TDD的实践指南
前端
花涧鹤28 分钟前
学完循环我才发现,我写的不是死循环,是死机
后端
shmily麻瓜小菜鸡38 分钟前
前端实现图片与PDF文字识别敏感信息打码方案
前端·pdf·状态模式
追光者4941 分钟前
我把 55 篇自动化日志翻了一遍:最容易出事的是这 4 个地方
python·自动化运维
2601_9628857241 分钟前
如何用 Python计算 CR能量指标(中间意愿指标)?
开发语言·python