返回介绍

数学基础

统计学习

深度学习

工具

Scala

六、 path effect

发布于 2023-07-17 23:38:23 字数 4159 浏览 0 评论 0 收藏 0

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

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

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

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

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

    如:

    
    
    xxxxxxxxxx
    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`

  4. 我们可以在基于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
  5. Strok effect可以用于制作出stand-out effect(突出效果)。

    `stand-out effect`

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

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

    
    
    xxxxxxxxxx
    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 和您的相关数据。
    原文