【matplotlib】可视化解决方案——如何设置轴标签的透明度和大小

概述

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()

绘图结果如下:

更改轴标签、设置透明度和阴影

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

往期回顾

  1. 【matplotlib】可视化解决方案——如何向图表中添加数据表
  2. 【matplotlib】可视化解决方案——如何更改绘图区域背景颜色
  3. 【matplotlib】可视化解决方案——如何使用数学公式
  4. 【matplotlib】可视化解决方案——绘图刻度设置
  5. 【matplotlib】可视化解决方案——子图设置大标题问题解决方案
  6. 【matplotlib】可视化解决方案——子图间距问题解决方案
  7. 【matplotlib】可视化解决方案——joinstyle参数详解
  8. 【matplotlib】可视化解决方案——capstyle参数详解
  9. 【matplotlib】可视化解决方案——linestyle参数详解
  10. 【matplotlib】可视化解决方案——柱状图标注问题

文中难免会出现一些描述不当之处(尽管我已反复检查多次),欢迎在留言区指正,相关的知识点也可进行分享,希望大家都能有所收获!!如果觉得我的文章写得还行,不妨支持一下。你的每一个转发、关注、点赞、评论都是对我最大的支持!

你可能感兴趣的:(【matplotlib】可视化解决方案——如何设置轴标签的透明度和大小)