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

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


一、Matplotlib简介

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

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的强大在于它的可扩展性与灵活性。 当你熟练掌握它后,可以进一步学习 SeabornPlotly 等高级可视化库,构建更专业、更美观的数据展示界面。


相关推荐
数据超市2 小时前
快速CAD转到PPT的方法,带教程
大数据·python·科技·信息可视化·数据挖掘
程序员爱钓鱼2 小时前
Python编程实战 - Python实用工具与库 - requests 与 BeautifulSoup
前端·后端·python
努力还债的学术吗喽2 小时前
【项目】pyqt5基于python的照片整蛊项目
开发语言·python·qt
阿_旭2 小时前
基于深度学习的车载视角路面病害检测系统【python源码+Pyqt5界面+数据集+训练代码】
人工智能·python·深度学习·路面病害检测
wyzqhhhh2 小时前
前端跨页面通信
前端
熊小猿2 小时前
Redis 缓存怎么更新?—— 四种模型与一次“迟到的删除”
java·后端·spring
星释2 小时前
Rust 练习册 :掌握文本处理与词频统计
开发语言·后端·rust
火龙谷2 小时前
DrissionPage遇到iframe
开发语言·前端·javascript