Matplotlib - 路径效果
路径效果指的是在计算机图形学中对路径(路线)进行各种操作的方式。“路径”是指使用绘图工具创建的线条或形状,而“路径效果”允许你对该线条或形状应用各种修改。
想象你画了一条简单的线条,通过路径效果,你可以让这条线条看起来呈波浪状、点状,或应用其他视觉变化,而无需手动重新绘制。它就像为已创建的路径添加特殊效果,使你的绘图更加有趣和动态。
Matplotlib 中的路径效果
你可以使用 matplotlib 中的 "path_effects" 模块,通过创建路径效果来增强图表的视觉表现。要开始使用,请考虑 "path_effects" 模块中的 "withStroke()" 函数。该函数允许你为线条和标记添加描边或轮廓。
Matplotlib 中的路径效果允许你通过应用特殊视觉效果来增强图表中线条和形状的外观。
带阴影路径效果的简单线条
在 Matplotlib 中,创建带阴影的简单线条涉及在图表上绘制一条基本线条,然后为其添加阴影效果,使其在视觉上更具吸引力。这种效果会让线条下方呈现出阴影,仿佛在绘图表面投下微妙的阴影。
示例 - 应用阴影路径效果
在以下示例中,我们绘制了一条波浪线,然后使用 path_effects 模块为线条添加阴影效果。阴影效果由一条 "gray" 描边组成,营造出线条后方的阴影效果。
import matplotlib.pyplot as plt
import matplotlib.patheffects as path_effects
import numpy as np
# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 创建简单线条图
fig, ax = plt.subplots()
line, = ax.plot(x, y, label='Simple Line')
# 为线条添加阴影效果
shadow_effect = path_effects.withStroke(linewidth=5, foreground='gray')
line.set_path_effects([shadow_effect])
ax.set_title('Simple Line with Shadow Effect')
plt.legend()
plt.show()
输出
以上代码的输出如下 −
带轮廓路径效果的虚线
在 Matplotlib 中创建带轮廓路径效果的虚线涉及在图表上绘制一条点线,然后通过添加粗轮廓来增强其效果。要创建轮廓,你可以在虚线上方绘制另一条线条,使用更粗的 linewidth 和实线 linestyle。
示例 - 使用轮廓路径效果
在这里,我们创建了一条虚线,并为其添加 "black" 描边轮廓,以赋予线条粗体边框,使其更加突出。
import matplotlib.pyplot as plt
import matplotlib.patheffects as path_effects
import numpy as np
# 生成数据
x = np.linspace(0, 10, 100)
y = np.cos(x)
# 创建带轮廓的虚线图
fig, ax = plt.subplots()
line, = ax.plot(x, y, linestyle='dashed', label='Dashed Line')
# 为线条添加轮廓效果
outline_effect = path_effects.withStroke(linewidth=3, foreground='black')
line.set_path_effects([outline_effect])
ax.set_title('Dashed Line with Outline Effect')
plt.legend()
plt.show()
输出
执行以上代码将得到以下输出 −

粗体描边散点图路径效果
在 Matplotlib 中创建带有路径效果的粗体描边散点图,涉及在图上绘制一组点,并通过为每个点添加粗体描边来增强其视觉效果。
示例 - 使用粗体描边效果
在下面的示例中,我们生成带有随机数据点的散点图。为了增强这些点的可见性,我们通过在每个散点周围添加“black”描边并增加“linewidth”来为每个点应用粗体描边效果。
import matplotlib.pyplot as plt
import matplotlib.patheffects as path_effects
import numpy as np
# 生成数据
x = np.random.rand(50)
y = np.random.rand(50)
# 创建带有粗体描边效果的散点图
fig, ax = plt.subplots()
scatter = ax.scatter(x, y, label='Scatter Plot')
# 为散点添加粗体描边效果
outline_effect = path_effects.withStroke(linewidth=3, foreground='black')
scatter.set_path_effects([outline_effect])
ax.set_title('Scatter Plot with Bold Outline')
plt.legend()
plt.show()
输出
执行上述代码后,我们将得到以下输出 −
组合路径效果
在 Matplotlib 中创建组合路径效果图允许我们对线条应用多种艺术增强效果,例如线型、标记、颜色渐变和透明度。
- 线型 − 您可以选择各种线型选项,如实线 ('-')、虚线 ('--')、点线 (':') 等。
- 标记 − 可以添加标记来突出显示特定数据点。常见标记包括圆圈 ('o')、正方形 ('s')、三角形 ('^') 等。
- 颜色渐变 − 您可以使用颜色渐变来创建视觉上吸引人的线条。通过指定“colormap”并基于变量使用它来为线条着色即可实现。
- 透明度 − 为线条添加透明度可以使重叠的线条更易区分。您可以使用“alpha”参数调整透明度。
示例 - 组合效果
现在,我们对线条应用三种路径效果:微妙的阴影效果、粗体黑色描边和轻微模糊效果。结果显示了一个结合这些效果的线图。
import matplotlib.pyplot as plt
import matplotlib.patheffects as path_effects
import numpy as np
# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 创建线图
fig, ax = plt.subplots()
line, = ax.plot(x, y, label='Combined Effects Line')
# 组合多种路径效果:阴影、粗体描边和模糊
shadow_effect = path_effects.withStroke(linewidth=5, foreground='cyan')
outline_effect = path_effects.withStroke(linewidth=3, foreground='red')
blur_effect = path_effects.withStroke(linewidth=5, foreground='magenta', alpha=0.4)
# 为线条应用组合效果
line.set_path_effects([shadow_effect, outline_effect, blur_effect])
ax.set_title('Combined Path Effects Line')
plt.legend()
plt.show()
输出
执行上述代码我们将得到以下输出 −
