在数据分析中,数据可视化 是最直观、最具洞察力的环节。它能让复杂的数字和趋势以图形化的方式呈现,从而帮助我们更好地理解数据。 在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 等高级可视化库,构建更专业、更美观的数据展示界面。