Matplotlib 教程
1. 工具定位
Section titled “1. 工具定位”Matplotlib 是 Python 数据科学栈中最底层的 2D 绘图库,也是 Seaborn、Pandas 内置绘图功能的基础支撑。
(安装依赖:pip install matplotlib)
2. 基础实战:状态机接口 (pyplot)
Section titled “2. 基础实战:状态机接口 (pyplot)”适用于快速画出简单的统计图表。
import matplotlib.pyplot as pltimport numpy as np
# 生成模拟数据x = np.linspace(0, 10, 100)y1 = np.sin(x)y2 = np.cos(x)
# 1. 创建图形对象plt.figure(figsize=(8, 4)) # 设置画布大小
# 2. 绘制折线图plt.plot(x, y1, label='Sin(x)', color='blue', linestyle='-', linewidth=2)# 绘制散点图plt.scatter(x, y2, label='Cos(x)', color='red', marker='o', s=10)
# 3. 装饰图表plt.title('Trigonometric Functions') # 主标题plt.xlabel('X Axis') # X 轴标签plt.ylabel('Y Axis') # Y 轴标签plt.legend(loc='upper right') # 显示图例并指定位置plt.grid(True, linestyle='--', alpha=0.6) # 开启浅色虚线网格
# 4. 展示或落盘plt.savefig('output.png', dpi=300) # 保存为高清图片plt.show() # 在窗口或 Notebook 中渲染显示3. 进阶实战:面向对象接口 (OO API)
Section titled “3. 进阶实战:面向对象接口 (OO API)”当你需要在一个画布上 排列多个子图,或者进行极其复杂的精细控制时,强烈推荐使用面向对象的方式。
import matplotlib.pyplot as pltimport numpy as np
x = np.linspace(0, 5, 50)
# fig 代表整个画布窗口,axs 是一个包含多个子坐标系(Axes)的 NumPy 数组fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10, 4))
# 操作第一个子图axs[0].plot(x, x**2, color='green')axs[0].set_title('Square')axs[0].set_ylabel('y = x^2')
# 操作第二个子图axs[1].plot(x, np.sqrt(x), color='purple')axs[1].set_title('Square Root')axs[1].set_xlabel('x values')
# 自动调整子图间距防重叠plt.tight_layout()plt.show()