【机器学习】绘图中使用plt(图像全局)和axes对象(局部子图)的区别
使用 axes对象
和 plt
的区别主要体现在图形绘制的灵活性和控制能力上。下面是详细的对比:
1. plt
(Matplotlib 的 pyplot 模块)
- 全局状态:
plt
函数使用的是 Matplotlib 的全局状态,通常只会影响当前活动的图形。这可能会导致在多个图形或子图时出现混淆。 - 简单易用: 对于快速绘图或简单图形,
plt
是一种方便的选择,使用起来简单直观。
import matplotlib.pyplot as plt
plt.figure()
plt.scatter(x, y)
plt.title("Title")
plt.show()
2. ax
(Axes 对象)
- 局部状态:
ax
是一个特定的子图对象,使用它可以在特定的图表区域上绘制。每个ax
可以独立控制,因此在复杂图形中更具灵活性。 - 更精细的控制: 使用
ax
可以更容易地自定义每个子图的属性,如标题、标签、范围等,尤其是在绘制多个子图时。
fig, ax = plt.subplots(2,2)
# 创建一个图形和一个子图,图形被分为四块
ax[1,0].scatter(x, y) # 在特定的子图上绘制
ax[1,0].set_title("Title") # 设置子图的标题
plt.show()
3. 选择使用场景
- 简单绘图: 如果只需要绘制单个图形,使用
plt
会更加简单快速。 - 多个子图: 如果需要在同一图形中绘制多个子图,建议使用
ax
,这样可以避免全局状态带来的混淆,且代码更加清晰可读。
4. 小结
- 使用
plt
更适合快速、简单的绘图任务,而使用ax
更适合复杂的绘图需求,特别是当涉及多个子图时。通过使用ax
,你可以实现更高的灵活性和更好的代码组织。