概述

Axes 标签对于读者理解图表非常重要,它描述了图表中展现的数据内容。通过向 axes 对象添加标签,可以有效理解图表所表达的内容。首先来了解一下 matplotlib 是如何组织图表的。最上层是一个 Figure 实例,包含绘图中所有可见和不可见的内容。Figure 实例包含了一个 Axes 实例字段 Figure. Axes,该实例包含了所有绘图相关的东西,如所有的线、点、刻度和标签。举一个例子,调用 pyplot.plot(),就会向 【Axes. Lines】 列表中添加一个 Line2D 对象;调用 pyplot.plot() 方法就会向 【Axes. Patches】 列表中添加绘制的多个 patches 对象(patches 可以理解是一个用颜色填充的图形对象)。

Axes 实例也包含了 XAxis 和 YAxis 实例,分别对应 X 轴和 Y 轴,XAxis 和 YAxis 管理着坐标轴、标签、刻度、刻度标签定位器和格式器,在实际使用中不用使用 Axes.xaxis()Axes.yaxis 调用坐标轴实例,matplotlib 提供了一个 helper 方法来控制这些标签,即 pyplot.xlabel()plt.ylabel()

示例

接下来我们以一个示例来演示一下,在下面的代码中我们做了以下事项:

  1. 添加标题和 axes 标签;
  2. 添加标题和 axes 的阴影效果;
  3. 设置透明度。
import matplotlib.pyplot as plt  
from matplotlib import patheffects  
import numpy as np  
  
# 初始化数据  
data = np.random.randn(70)  
  
# 默认字体大小  
DEFAULT_FONT_SIZE = 18  
# 默认offset  
DEFAULT_OFFSET_XY = (1, -1)  
# 默认颜色  
DEFAULT_RGB_COLOR = (1.0, 0.0, 0.0)  
# 默认透明度  
DEFAULT_ALPHA = 0.8  
  
plt.plot(data)  
  
title = "Figure Title"  
x_label = "X Axis"  
y_label = "Y_axis"  
  
title_text_obj = plt.title(title, fontsize=DEFAULT_FONT_SIZE, verticalalignment="bottom")  
title_text_obj.set_path_effects([patheffects.withSimplePatchShadow()])  
pe = patheffects.withSimplePatchShadow(offset=DEFAULT_OFFSET_XY, shadow_rgbFace=DEFAULT_RGB_COLOR,  
                                       alpha=DEFAULT_ALPHA)  
  
xlabel_obj = plt.xlabel(x_label, fontsize=DEFAULT_FONT_SIZE, alpha=0.5)  
xlabel_obj.set_path_effects([pe])  
  
ylabel_obj = plt.ylabel(y_label, fontsize=DEFAULT_FONT_SIZE, alpha=0.5)  
ylabel_obj.set_path_effects([pe])  
  
plt.show()

绘图结果如下:

python plt x轴 长度 pyplot设置x轴标签_python

在上面的代码中有几点需要强调。路径阴影(path effects)是 matplotlib.patheffects 模块的部分内容,在 matplotlib 中 Text 类实例以及 Patch 类实例都支持设置阴影效果,这些类将会在我的另一个专栏可视化之路将会详细介绍。在设置文字属性时,一般传递一个字典 FontDict,而不是向上面的事例中那样仅仅传递一个 fontsize,做好封装是十分重要的,这会让代码具有可读性。Matplotlib 调用 helper 函数都会返回相应的实例,例如调用 pyplot.xlabel()pyplot.ylabel() 会返回 Text 实例。