# 显示网格

# 显示指定样式的网格

# 网格是从刻度线开始延伸,贯穿至整个绘图区域的辅助线条,它能帮助人们轻松地查看图形的数值。网格按不同的方向可以分为垂直网格和水平网格,这两种网格既可以单独使用,也可以同时使用,常见于添加图表精度、分辨图形细微差别的场景。
matplotlib 中可以直接使用 pyplot 模块的 grid() 函数显示网格,grid() 函数的语法格式如下所示:

grid(b=None, which='major', axis='both', **kwargs)

# 该函数常用参数的含义如下。

# · b :表示是否显示网格。若提供其他关键字参数,则 b 参数设为 True。
· which :表示显示网格的类型,支持 major、minor、both 这 3 种类型,默认为 major。
· axis :表示显示哪个方向的网格,该参数支持 both、x 和 y 这 3 个选项,默认为 both。
· linewidth 或 lw :表示网格线的宽度。

# 此外,还可以使用 Axes 对象的 grid() 方法显示网格。需要说明的是,坐标轴若没有刻度,就无法显示网格。
在 3.3.2 节绘制的正弦和余弦曲线图中显示水平网格,增加的代码如下。

# 显示网格
plt.grid(b=True, axis='y', linewidth=0.3)

# 运行程序,效果如图 3-9 所示。

image

# 实例3:汽车速度与制动距离的关系(添加网格)

# 在 2.7.2 节的汽车速度与制动距离关系的散点图中,很多圆点因距离坐标轴较远而无法准确地看出数值。因此,本实例将在散点图中显示网格,并调整坐标轴的刻度,具体代码如下。

In [4]:
# 03_vehicle_speed_and_braking_distance
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
x_speed = np.arange (10, 210, 10)
y_distance = np.array([0.5, 2.0, 4.4, 7.9, 12.3,
                       17.7, 24.1, 31.5, 39.9, 49.2,
                       59.5, 70.8, 83.1, 96.4, 110.7,
                       126.0, 142.2, 159.4, 177.6, 196.8])
plt.scatter(x_speed, y_distance, s=50, alpha=0.9, linewidths=0.3)
# 设置 x 轴的标教、’刻度标鎏
plt.xlabel('速度(km/h)')
plt.ylabel('制动距离(m)')
plt.xticks(x_speed)
# 显示网格
plt.grid(b=True, linewidth=0.3)
plt.show()

# 运行程序,效果如图 3-10 所示。

image

# 与图 2-19 相比,图 3-10 的散点图增加了坐标轴标签、浅灰色的网格,有助于用户大致了解各数据点对应的数值。