【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】可视化解决方案——子图间距问题解决方案
  8. 【matplotlib】可视化解决方案——capstyle参数详解
  9. 【matplotlib】可视化解决方案——joinstyle参数详解
  10. 【matplotlib】可视化解决方案——linestyle参数详解
  11. 【matplotlib】可视化解决方案——柱状图标注问题
    在这里插入图片描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小猪猪家的大猪猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值