경로 효과 가이드 #

개체가 캔버스에서 따라가는 경로를 정의합니다.

Matplotlib의 patheffects모듈은 path.Path.

경로 효과를 적용할 수 있는 아티스트에는 patches.Patch, 및 심지어 가 lines.Line2D포함 됩니다. 각 아티스트의 경로 효과는 이터러블 인스턴스 를 사용하는 메서드 를 통해 제어할 수 있습니다 .collections.Collectiontext.TextArtist.set_path_effectsAbstractPathEffect

가장 간단한 패스 효과는 Normal아무런 효과 없이 단순히 아티스트를 그리는 효과입니다.

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()
경로 효과 가이드

플롯은 경로 효과 없이 기대하는 것과 전혀 다르지 않지만 이제 텍스트 그림이 경로 효과 프레임워크를 사용하도록 변경되어 더 흥미로운 예제에 대한 가능성을 열었습니다.

그림자 추가 #

Normal경로 기반 아티스트에게 적용할 수 있는 그림자 효과보다 훨씬 더 흥미로운 경로 효과 입니다. 클래스 는 원래 아티스트 아래에 채워진 패치 또는 선 패치를 그려 정확하게 이 작업 SimplePatchShadow 을 수행합니다.SimpleLineShadow

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경로 효과는 이를 비교적 간단한 작업으로 만듭니다 .

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()
경로 효과 가이드

이 효과는 텍스트 경로를 두 번 그렸기 때문에 작동한다는 점에 유의해야 합니다. 두꺼운 검은색 선으로 한 번, 맨 위에 원래 텍스트 경로로 한 번.

to StrokeSimplePatchShadow 및 키워드 SimpleLineShadow가 일반적인 아티스트 키워드( facecolor edgecolor 등)가 아님을 알아차리셨을 것입니다. 이는 이러한 경로 효과로 Matplotlib의 하위 수준에서 작동하기 때문입니다. 실제로 허용되는 키워드 matplotlib.backend_bases.GraphicsContextBase는 사용자 인터페이스가 아닌 새 백엔드를 쉽게 만들 수 있도록 설계된 인스턴스에 대한 키워드입니다.

경로 효과 아티스트의 더 큰 제어 #

이미 언급했듯이 일부 경로 효과는 대부분의 사용자가 사용하는 것보다 낮은 수준에서 작동합니다. 즉, facecoloredgecolor 와 같은 키워드를 설정 하면 AttributeError가 발생합니다. 운 좋게도 원래 경로로 클래스 PathPatchEffect를 만드는 일반 경로 효과가 있습니다. patches.PathPatch이 효과에 대한 키워드는 다음과 동일합니다 patches.PathPatch.

fig = plt.figure(figsize=(8.5, 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()
경로 효과 가이드

Sphinx-Gallery에서 생성한 갤러리