返回介绍

path effect

发布于 2024-05-19 17:52:13 字数 3695 浏览 0 评论 0 收藏 0

matplotlibpatheffects 模块提供了一些函数来绘制 path effect ,该模块还定义了很多 effect 类。可以应用 path effectArtist 有: PatchLine2DCollection 以及 Text 。每个 Artistpath effect 可以通过 .set_path_effects() 方法控制,其参数是一个可迭代对象,迭代的结果是 AbstractPathEffect 实例;也可以通过 Artist 构造函数的 path_effects= 关键字参数控制。

注意: effect 类的关键字参数比如背景色、前景色等与 Artist 不同。因为这些 effect 类是更低层次的操作。

所有的 effect 类都继承自 matplotlib.patheffects.AbstractPathEffect 类。 AbstractPathEffect 的子类要覆盖 AbstractPathEffect 类的 .draw_path(...) 方法。

AbstractPathEffect 类的构造函数有个 offset 关键字参数,表示 effect 偏移(默认为 (0,0) )

1. normal effect

最简单的 effectnormal effect ,它是 matplotlib.patheffects.Normal 类。它简单的绘制 Artist ,不带任何 effect

如:

import matplotlib.pyplot as plt
import matplotlib.patheffects as path_effects
fig = plt.figure(figsize=(5, 1.5))
text = fig.text(0.5, 0.5, 'Hello path effects world!\nThis is the normal path effect.',
ha='center', va='center', size=20)
text.set_path_effects([path_effects.Normal()])
plt.show()

normal effect

2. drop-shadow effect

我们可以在基于 PathArtist 上应用 drop-shadow effect (下沉效果)。如可以在 filled patch Artist 上应用 matplotlib.patheffects.SimplePatchShadow ,在 line patch Artist 上应用 matplotlib.patheffects.SimpleLineShadow

drop-shadow effect

你可以通过 path_effects=[path_effects.with*()] 来指定 path_effects 参数,或者直接通过 path_effects=[path_effects.SimpleLineShadow(),path_effects.Normal()] 来指定 path_effects 参数。

  • 前者会自动地在 normal effect 后跟随指定的 effect
  • 后者会显式的指定 effect

3. stand-out effect

Strok effect 可以用于制作出 stand-out effect (突出效果)。

stand-out effect

4. 通用 PathPatchEffect

PathPatchEffect 是一个通用的 path effect 类。如果对某个 PathPatch 设置了 PathPatchEffect ,则该 effect.draw_path(...) 方法执行的是由初始 PathPatch 计算的得到的一个新的 PathPatch

与一般的 effect 类不同, PathPatchEffect 类的关键字参数是与 PathPatch 一致的,因为除了 offset 关键字参数外,其他的任何关键字参数都会传递给 PathPatch 构造函数。如:

import matplotlib.pyplot as plt
import matplotlib.patheffects as path_effects
fig = plt.figure(figsize=(8, 1))
t = fig.text(0.02, 0.5, 'Hatch shadow', fontsize=75, weight=1000, va='center')
t.set_path_effects([path_effects.PathPatchEffect(offset=(4, -4), hatch='xxxx',
facecolor='gray'),
path_effects.PathPatchEffect(edgecolor='white', linewidth=1.1,
facecolor='black')])
plt.show()

PathPatchEffect

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文