Matplotlib 中文用户指南 3.9 路径效果指南

简介: 路径效果指南 原文:Path effects guide 译者:飞龙 协议:CC BY-NC-SA 4.0Matplotlib 的patheffects模块提供了一些功能,用于将多个绘制层次应用到任何艺术家,并可以通过路径呈现。

路径效果指南

原文:Path effects guide

译者:飞龙

协议:CC BY-NC-SA 4.0

Matplotlib 的patheffects模块提供了一些功能,用于将多个绘制层次应用到任何艺术家,并可以通过路径呈现。

可以对其应用路径效果的艺术家包括PatchLine2DCollection,甚至文本。 每个艺术家的路径效果都可以通过set_path_effects方法(set_path_effects)控制,它需要一个AbstractPathEffect的可迭代实例。

最简单的路径效果是普通效果,它简单地绘制艺术家,并没有任何效果:

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.\nPretty dull, huh?',
                ha='center', va='center', size=20)
text.set_path_effects([path_effects.Normal()])
plt.show()

添加阴影

比正常效果更有趣的路径效果是阴影,我们可以应用于任何基于路径的艺术家。 SimplePatchShadowSimpleLineShadow类通过在基本艺术家下面绘制填充补丁或线条补丁来实现它:

import matplotlib.pyplot as plt
import matplotlib.patheffects as path_effects

text = plt.text(0.5, 0.5, 'Hello path effects world!',
                path_effects=[path_effects.withSimplePatchShadow()])

plt.plot([0, 3, 2, 5], linewidth=5, color='blue',
         path_effects=[path_effects.SimpleLineShadow(),
                       path_effects.Normal()])
plt.show()

请注意本示例中设置路径效果的两种方法。 第一个使用with *类,来包含“正常”效果之后的所需功能,而后者明确定义要绘制的两个路径效果。

让艺术家脱颖而出

使艺术家在视觉上脱颖而出的一个好方法是,在实际艺术家下面以粗体颜色绘制轮廓。 Stroke路径效果使其相对简单:

import matplotlib.pyplot as plt
import matplotlib.patheffects as path_effects

fig = plt.figure(figsize=(7, 1))
text = fig.text(0.5, 0.5, 'This text stands out because of\n'
                          'its black border.', color='white',
                          ha='center', va='center', size=30)
text.set_path_effects([path_effects.Stroke(linewidth=3, foreground='black'),
                       path_effects.Normal()])
plt.show()

重要的是注意,这种效果能够工作,因为我们已经绘制两次文本路径:一次使用粗黑线,然后另一次使用原始文本路径在上面绘制。

您可能已经注意到,StrokeSimplePatchShadowSimpleLineShadow的关键字不是通常的Artist关键字(例如facecoloredgecolor等)。这是因为使用这些路径效果,我们操作了 matplotlib 的较低层。实际上,接受的关键字是用于matplotlib.backend_bases.GraphicsContextBase实例的关键字,它们为易于创建新的后端而设计,而不是用于其用户界面。

对路径效果艺术家的更大控制

如前所述,一些路径效果的操作级别低于大多数用户操作,这意味着设置关键字(如facecoloredgecolor)会导致AttributeError。幸运的是,有一个通用的PathPatchEffect路径效果,它创建一个具有原始路径的PathPatch类。此效果的关键字与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()

相关文章
|
算法 机器人 定位技术
利用Robocon2018 比赛地图 + OpenCv + matplotlib拟合贝塞尔曲线,并且生成路径坐标点
原文链接 本文内容: 贝塞尔曲线简介 代码算法讲解 总结 贝塞尔曲线简介: 原理: Github上一位大佬已经总结得很详细了, 还有动态图的哦,,我这里就直接引用啦Github 计算公式: 此处引用简书一位大佬的总结:@L_Xian; 该大佬不仅解释了贝塞尔曲线的原理,还详细的推导了贝塞尔曲线各阶公式之间的联系。
1930 0
|
Python
Matplotlib 中文用户指南 3.7 变换教程
变换教程 原文:Transformations Tutorial 译者:飞龙 协议:CC BY-NC-SA 4.0 像任何图形包一样,matplotlib 建立在变换框架之上,以便在坐标系,用户数据坐标系,轴域坐标系,图形坐标系和显示坐标系之间轻易变换。
1157 0
|
Python
Matplotlib 中文用户指南 3.8 路径教程
路径教程 原文:Path Tutorial 译者:飞龙 协议:CC BY-NC-SA 4.0 位于所有matplotlib.patch对象底层的对象是Path,它支持moveto,lineto,curveto命令的标准几个,来绘制由线段和样条组成的简单和复合轮廓。
981 0
|
Python 数据可视化 Shell
Matplotlib 中文用户指南 3.2 图像教程
图像教程 原文:Image tutorial 译者:飞龙 协议:CC BY-NC-SA 4.0 启动命令 首先,让我们启动 IPython。
1168 0
|
索引 Python
Matplotlib 中文用户指南 3.3 使用 GridSpec 自定义子图位置
使用 GridSpec 自定义子图位置 原文:Customizing Location of Subplot Using GridSpec 译者:飞龙 协议:CC BY-NC-SA 4.0 GridSpec 指定子图将放置的网格的几何位置。
1343 0
|
Python 算法 API
Matplotlib 中文用户指南 3.5 密致布局指南
密致布局指南 原文:Tight Layout guide 译者:飞龙 协议:CC BY-NC-SA 4.0 tight_layout会自动调整子图参数,使之填充整个图像区域。
1005 0
|
存储 API Python
Matplotlib 中文用户指南 3.5 艺术家教程
艺术家教程 原文:Artist tutorial 译者:飞龙 协议:CC BY-NC-SA 4.0 matplotlib API 有三个层级。
1298 0
|
Python API
Matplotlib 中文用户指南 3.6 图例指南
图例指南 原文:Legend guide 译者:飞龙 协议:CC BY-NC-SA 4.0 此图例指南是legend()中可用文档的扩展 - 请在继续阅读本指南之前确保你熟悉该文档(见篇尾)的内容。
1076 0
|
资源调度 Python API
Matplotlib 中文用户指南 3.1 pyplot 教程
pyplot 教程 原文:Pyplot tutorial 译者:飞龙 协议:CC BY-NC-SA 4.0 matplotlib.pyplot是一个命令风格函数的集合,使matplotlib的机制更像 MATLAB。
1471 0
|
2月前
|
Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
下一篇
无影云桌面