메모
전체 예제 코드를 다운로드 하려면 여기 를 클릭 하십시오.
경로 효과 가이드 #
개체가 캔버스에서 따라가는 경로를 정의합니다.
Matplotlib의 patheffects
모듈은 path.Path
.
경로 효과를 적용할 수 있는 아티스트에는 patches.Patch
,
및 심지어 가 lines.Line2D
포함 됩니다. 각 아티스트의 경로 효과는 이터러블 인스턴스 를 사용하는 메서드 를 통해 제어할 수 있습니다 .collections.Collection
text.Text
Artist.set_path_effects
AbstractPathEffect
가장 간단한 패스 효과는 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 Stroke
및 SimplePatchShadow
및 키워드 SimpleLineShadow
가 일반적인 아티스트 키워드( facecolor
edgecolor 등)가 아님을 알아차리셨을 것입니다. 이는 이러한 경로 효과로 Matplotlib의 하위 수준에서 작동하기 때문입니다. 실제로 허용되는 키워드 matplotlib.backend_bases.GraphicsContextBase
는 사용자 인터페이스가 아닌 새 백엔드를 쉽게 만들 수 있도록 설계된 인스턴스에 대한 키워드입니다.
경로 효과 아티스트의 더 큰 제어 #
이미 언급했듯이 일부 경로 효과는 대부분의 사용자가 사용하는 것보다 낮은 수준에서 작동합니다. 즉,
facecolor 및 edgecolor 와 같은 키워드를 설정 하면 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()