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 等高级可视化库,构建更专业、更美观的数据展示界面。


相关推荐
维克兜率天8 分钟前
【维克】趋势型CTA:期货市场的“追涨杀跌“
人工智能·python
考虑考虑13 分钟前
Posrgresql恢复.backup文件
数据库·后端·postgresql
Csvn20 分钟前
性能监控
前端
无奈何杨31 分钟前
风控决策系统决策流,策略模式,权重、顺序、投票、最坏
后端
Csvn1 小时前
构建工具
前端
取名真是1 小时前
Python 算法知识点从基础到进阶
开发语言·python·算法
梦想不只是梦与想1 小时前
PyTorch、CPU、GPU、CUDA
人工智能·pytorch·python·深度学习·机器学习·cuda
数字融合1 小时前
透明化视频孪生危化安全管控解决方案
人工智能·python·安全
FRing031 小时前
vue2干货总结3(computed计算属性、watch监听器)
开发语言·前端·vue.js·vue2
Patrick_Wilson2 小时前
Go 为什么需要 defer?从函数怎么收尾说起
后端·go·编程语言