Matplotlib 数据可视化实战:从基础绘图到多子图展示

119 阅读3分钟

Matplotlib 是 Python 中最常用的数据可视化库之一,它提供了丰富的绘图功能,能够满足从简单曲线到复杂子图的各种可视化需求。本文将介绍 Matplotlib 的基础用法,包括多项式曲线绘制、格式字符串使用和子图创建。

1. 绘制多项式曲线

多项式曲线是数据可视化中的基础内容,通过 numpy.poly1d() 函数可以轻松创建多项式函数。

代码

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

# 绘制多项式曲线
# 创建多项式对象 y = 2x^2 + 3x + 1
aPoly = np.poly1d([2, 3, 1])
# x、y变量
x = np.arange(-5, 5, 0.01)
y = aPoly(x)
# 绘制曲线
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('y')
plt.legend() # 网格
plt.show() # 展示画布

结果展示

1.1.png

代码解析:

  • np.poly1d([2, 3, 1]) 创建了一个二次多项式函数
  • np.arange(-5, 5, 0.01) 生成从-5到5,步长为0.01的x值数组
  • plt.plot() 绘制曲线,plt.xlabel()plt.ylabel() 设置坐标轴标签
  • plt.legend() 显示图例,plt.show() 展示图形

2. 使用格式字符串定制曲线样式

格式字符串可以让我们自定义曲线的颜色、线型和标记样式,使图形更加美观和易读。

代码

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

# 格式字符串
x = np.linspace(0, 2 * np.pi, 100)
y_sin = np.sin(x)
y_cos = np.cos(x)
# 绘制正弦曲线
plt.plot(x, y_sin, 'r-', label='sin(x)')  # 红色实线
# 绘制余弦曲线
plt.plot(x, y_cos, 'b--', label='cos(x)')  # 蓝色虚线
# 设置图形标题
plt.title('sin and cos')
# 设置x轴和y轴标签
plt.xlabel('x')
plt.ylabel('y')
# 显示图例
plt.legend()
# 显示网格
plt.grid(True)
# 显示图形
plt.show()

结果展示

2.png

代码解析:

  • 'r-' 表示红色实线,'b--' 表示蓝色虚线
  • np.linspace(0, 2 * np.pi, 100) 生成0到2π之间的100个等间距点
  • plt.title() 设置图形标题
  • plt.grid(True) 添加网格线,提高可读性

3. 创建多子图布局

子图功能允许我们在一个图形窗口中创建多个坐标轴,便于比较不同数据或函数。

代码

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

# 生成x轴数据
x = np.linspace(0, 2 * np.pi, 100)
# 计算正弦函数值
y_sin = np.sin(x)
# 计算余弦函数值
y_cos = np.cos(x)
# 计算平方函数值
y_square = x * x
# 计算平方根函数值
y_sqrt = np.sqrt(x)
# 创建2x2的子图布局
plt.subplot(2, 2, 1)
plt.plot(x, y_sin, 'r-', label='sinx')
plt.title('sinx')
plt.legend()
plt.subplot(2, 2, 2)
plt.plot(x, y_cos, 'g--', label='cosx')
plt.title('cosx')
plt.legend()
plt.subplot(2, 2, 3)
plt.plot(x, y_square, 'b*', label='square')
plt.title('square')
plt.legend()
plt.subplot(2, 2, 4)
plt.plot(x, y_sqrt, 'r-x', label='sqrt')
plt.title('sqrt')
plt.legend()
plt.show()  # 展示画布

结果展示

3.png

代码解析:

  • plt.subplot(2, 2, 1) 创建2行2列的子图布局,并选择第1个子图
  • 每个子图都有独立的标题、图例和样式设置
  • 使用了不同的线型和标记:'r-'(红色实线)、'g--'(绿色虚线)、'b*'(蓝色星号标记)、'r-x'(红色实线加x标记)

总结

通过这三个示例,我们学习了 Matplotlib 的基本绘图功能:

  1. 基础绘图:使用 plt.plot() 绘制简单函数曲线
  2. 样式定制:通过格式字符串控制线条颜色、线型和标记
  3. 多图布局:使用 plt.subplot() 创建复杂的子图排列

这些基础技能为更高级的数据可视化打下了坚实基础。Matplotlib 的强大之处在于其灵活性和可定制性,能够满足从简单的学术绘图到复杂的商业图表的各种需求。