matplotlib.path#

Matplotlib 전체에서 사용되는 폴리라인을 처리하기 위한 모듈입니다.

Matplotlib에서 폴리라인 처리를 위한 기본 클래스는 Path. 거의 모든 벡터 드로잉은 Path드로잉 파이프라인 어딘가에서 s를 사용합니다.

인스턴스 Path자체를 그릴 수는 없지만 편리한 시각화 를 위해 및 Artist와 같은 일부 하위 클래스를 사용할 수 있습니다.PathPatchPathCollectionPath

클래스 matplotlib.path. 경로 ( 정점 , 코드 = 없음 , _interpolation_steps = 1 , 닫힘 = False , 읽기 전용 = False ) [소스] #

베이스:object

연결이 끊어지거나 닫혀 있을 수 있는 일련의 선 및 곡선 세그먼트.

기본 저장소는 두 개의 병렬 numpy 배열로 구성됩니다.

  • vertices : 꼭지점의 Nx2 float 배열

  • 코드 : 경로 코드의 N 길이 uint8 배열 또는 None

이 두 배열은 항상 첫 번째 차원의 길이가 같습니다. 예를 들어 3차 곡선을 나타내려면 3개의 정점과 3개의 CURVE4코드를 제공해야 합니다.

코드 유형은 다음과 같습니다.

  • STOP정점 1개(무시됨)

    전체 경로의 끝을 나타내는 마커(현재 필요하지 않으며 무시됨)

  • MOVETO정점 1개

    펜을 들고 주어진 정점으로 이동합니다.

  • LINETO정점 1개

    현재 위치에서 주어진 정점까지 선을 그립니다.

  • CURVE3제어점 1개, 끝점 1개

    주어진 제어점을 사용하여 현재 위치에서 주어진 끝점까지 2차 베지어 곡선을 그립니다.

  • CURVE4제어점 2개, 끝점 1개

    주어진 제어점을 사용하여 현재 위치에서 주어진 끝점까지 3차 베지어 곡선을 그립니다.

  • CLOSEPOLY정점 1개(무시됨)

    현재 폴리라인의 시작점에 선분을 그립니다.

코드 가 없음이면 일련 MOVETO의 가 뒤따르는 것으로 해석됩니다 LINETO.

Path 객체 사용자는 정점 및 코드 배열에 직접 액세스해서는 안 됩니다. 대신에 iter_segmentsor cleaned를 사용하여 정점/코드 쌍을 가져와야 합니다. 이는 특히 코드 가 없음 인 경우를 일관되게 처리하는 데 도움이 됩니다 .

Path 개체의 일부 동작은 rcParams로 제어할 수 있습니다. 키가 'path.'로 시작하는 rcParams를 참조하십시오.

메모

꼭짓점과 코드 배열은 변경할 수 없는 것으로 취급해야 합니다. 데이터가 변경될 때 변경되지 않는 생성자에서 미리 구성된 여러 가지 최적화 및 가정이 있습니다.

주어진 꼭지점과 코드로 새 경로를 만듭니다.

매개변수 :
정점 (N, 2) 배열형

배열, 마스킹된 배열 또는 일련의 쌍으로서의 경로 꼭지점. 마스킹된 값이 있는 경우 NaN으로 변환되어 Agg PathIterator 및 기타 경로 데이터 소비자(예: iter_segments().

배열형 코드 또는 없음, 선택 사항

경로의 코드를 나타내는 정수의 N 길이 배열입니다. None이 아니면 코드는 정점과 길이가 같아야 합니다. None이면 정점 이 일련의 선분으로 처리됩니다.

_interpolation_steps 정수, 선택 사항

Polar와 같은 특정 투영에 대한 힌트로 사용되며 이 경로는 그리기 직전에 선형 보간되어야 합니다. 이 특성은 기본적으로 구현 세부 정보이며 공용으로 사용할 수 없습니다.

닫힌 부울, 선택 사항

코드 가 None이고 closed가 True 이면 정점이 닫힌 다각형의 선분으로 처리됩니다. 그러면 마지막 정점이 무시됩니다(해당 코드가 CLOSEPOLY로 설정됨).

읽기 전용 부울, 선택 사항

경로가 변경 불가능한 방식으로 동작하도록 만들고 정점과 코드를 읽기 전용 배열로 설정합니다.

클로즈폴리 = 79 #
곡선 3 = 3 #
곡선 4 = 4 #
라인토 = 2 #
무베토 = 1 #
NUM_VERTICES_FOR_CODE = {0: 1, 1: 1, 2: 1, 3: 2, 4: 3, 79: 1} #

코드가 예상하는 정점 수에 대한 경로 코드를 매핑하는 사전입니다.

중지 = 0 #
classmethod arc ( theta1 , theta2 , n = None , is_wedge = False ) [출처] #

각도 theta1 에서 theta2Path 까지의 단위 원 호에 대해 a를 반환 합니다(단위 : 도).

theta2 는 언래핑되어 360도 내에서 가장 짧은 호를 생성합니다. 즉, theta2 > theta1 + 360인 경우 호는 theta1 에서 theta2 - 360까지이며 완전한 원과 추가 오버랩이 아닙니다.

n 이 제공 되면 만들 스플라인 세그먼트의 수입니다. n 이 제공되지 않으면 스플라인 세그먼트의 수는 theta1theta2 사이의 델타를 기반으로 결정 됩니다.

classmethod circle ( center = (0.0, 0.0) , radius = 1.0 , readonly = False ) [출처] #

Path주어진 반지름과 중심의 원을 나타내는 를 반환합니다 .

매개변수 :
센터 (float, float), 기본값: (0, 0)

원의 중심입니다.

반지름 부동 소수점, 기본값: 1

원의 반지름입니다.

읽기 전용 부울

Path 인스턴스를 생성할 때 생성된 경로에 "readonly" 인수를 설정해야 하는지 여부입니다.

메모

원은 다음에 설명된 대로 8개의 입방체 베지어 곡선을 사용하여 근사화됩니다.

정리 됨 ( 변환 = 없음 , remove_nans = False , 클립 = 없음 , * , 단순화 = False , 곡선 = False , stroke_width = 1.0 , snap = False , 스케치 = 없음 ) [소스] #

매개변수에 따라 정리된 정점과 코드가 있는 새 경로를 반환합니다.

또한보십시오

Path.iter_segments

키워드 인수에 대한 자세한 내용은

clip_to_bbox ( bbox , 내부 = True ) [소스] #

지정된 경계 상자의 경로를 자릅니다.

경로는 하나 이상의 닫힌 다각형으로 구성되어야 합니다. 이 알고리즘은 닫히지 않은 경로에 대해 올바르게 작동하지 않습니다.

inside 가 이면 True상자 안쪽에 클립하고, 그렇지 않으면 상자 외부에 클립합니다.

코드_유형 #

별칭uint8

속성 코드 #

Path1D numpy 배열 의 코드 목록입니다 . 각 코드는 STOP, MOVETO, LINETO, 또는 CURVE3중 하나입니다 . 하나 이상의 꼭짓점( 및 )에 해당하는 코드의 경우 및 의 길이 가 항상 동일하도록 해당 코드가 반복됩니다.CURVE4CLOSEPOLYCURVE3CURVE4verticescodes

contains_path ( 경로 , 변환 = 없음 ) [소스] #

이 (닫힌) 경로가 주어진 경로를 완전히 포함하는지 여부를 반환합니다.

transform 이 아닌 경우 None포함을 확인하기 전에 경로가 변환됩니다.

contains_point ( 포인트 , 변환 = 없음 , 반지름 = 0.0 ) [소스] #

경로로 둘러싸인 영역이 주어진 지점을 포함하는지 여부를 반환합니다.

경로는 항상 닫힌 것으로 취급됩니다. 즉, 마지막 코드가 CLOSEPOLY가 아닌 경우 마지막 정점을 첫 번째 정점에 연결하는 암시적 세그먼트가 가정됩니다.

매개변수 :
포인트 (플로트, 플로트)

확인할 점(x, y)입니다.

변형 matplotlib.transforms.Transform, 선택 사항

그렇지 않은 None경우 포인트self 는 변환에 의해 변환 된 것과 비교됩니다 . 즉, 올바른 확인을 위해 transform 은 경로를 point 의 좌표계로 변환해야 합니다 .

반경 부동, 기본값: 0

point 의 좌표에서 경로에 여백을 추가합니다 . 경로는 radius/2 만큼 접선 방향으로 확장됩니다 . 즉, 반지름 의 선폭으로 경로를 그리는 경우 선의 모든 지점은 여전히 ​​영역에 포함된 것으로 간주됩니다. 반대로 음수 값은 영역을 축소합니다. 가상 선의 점은 영역 외부로 간주됩니다.

반환 :
부울

메모

현재 알고리즘에는 몇 가지 제한 사항이 있습니다.

  • 결과는 정확히 경계에 있는 점에 대해 정의되지 않습니다(예: radius/2 만큼 이동한 경로 ).

  • 닫힌 영역이 없는 경우 결과는 정의되지 않습니다. 즉, 모든 정점이 직선에 있습니다.

  • 반경 이동 으로 인해 경계선이 서로 교차하기 시작 하면 결과가 정확하지 않을 수 있습니다.

contains_points ( 포인트 , 변환 = 없음 , 반지름 = 0.0 ) [소스] #

경로로 둘러싸인 영역이 주어진 점을 포함하는지 여부를 반환합니다.

경로는 항상 닫힌 것으로 취급됩니다. 즉, 마지막 코드가 CLOSEPOLY가 아닌 경우 마지막 정점을 첫 번째 정점에 연결하는 암시적 세그먼트가 가정됩니다.

매개변수 :
(N, 2) 배열

체크포인트. 열에는 x 및 y 값이 포함됩니다.

변형 matplotlib.transforms.Transform, 선택 사항

그렇지 않은 None경우 포인트self 는 변환에 의해 변환 된 것과 비교됩니다 . 즉, 올바른 확인을 위해 변환은 경로를 의 좌표계로 변환 해야 합니다 .

반경 부동, 기본값: 0

포인트 좌표에서 경로에 추가 여백을 추가합니다 . 경로는 radius/2 만큼 접선 방향으로 확장됩니다 . 즉, 반지름 의 선폭으로 경로를 그리는 경우 선의 모든 지점은 여전히 ​​영역에 포함된 것으로 간주됩니다. 반대로 음수 값은 영역을 축소합니다. 가상 선의 점은 영역 외부로 간주됩니다.

반환 :
길이-N 부울 배열

메모

현재 알고리즘에는 몇 가지 제한 사항이 있습니다.

  • 결과는 정확히 경계에 있는 점에 대해 정의되지 않습니다(예: radius/2 만큼 이동한 경로 ).

  • 닫힌 영역이 없는 경우 결과는 정의되지 않습니다. 즉, 모든 정점이 직선에 있습니다.

  • 반경 이동 으로 인해 경계선이 서로 교차하기 시작 하면 결과가 정확하지 않을 수 있습니다.

복사 ( ) [출처] #

Path정점과 코드를 소스와 공유할 의 얕은 복사본을 반환합니다 Path.

deepcopy ( 메모 = 없음 ) [소스] #

의 deepcopy를 반환합니다 Path. Path소스가 있는 경우에도 은(는) 읽기 전용이 아닙니다 Path.

get_extents ( 변환 = 없음 , ** kwargs ) [소스] #

경로의 Bbox를 가져옵니다.

매개변수 :
변환 matplotlib.transforms.Transform, 선택 사항

범위를 계산하기 전에 경로에 적용하기 위해 변환합니다(있는 경우).

**kwargs

(으)로 전달되었습니다 iter_bezier.

반환 :
matplotlib.transforms.Bbox

경로 Bbox([[xmin, ymin], [xmax, ymax]])의 범위

정적 해치 ( 해치패턴 , 밀도 = 6 ) [소스] #

해치 지정자가 주어졌을 때 hatchpattern 은 반복되는 해칭 패턴에 사용할 수 있는 경로를 생성합니다. 밀도 는 단위 제곱당 선의 수입니다.

보간 ( 단계 ) [소스] #

길이 N x 단계로 리샘플링된 새 경로를 반환합니다.

LINETO 이외의 코드는 올바르게 처리되지 않습니다.

intersects_bbox ( bbox , 채워진 = True ) [소스] #

이 경로가 주어진 와 교차하는지 여부를 반환합니다 Bbox.

채워진 값이 True이면 경로가 를 완전히 둘러싸는 경우(즉, 경로가 채워진 것으로 처리됨) True를 반환 합니다 Bbox.

경계 상자는 항상 채워진 것으로 간주됩니다.

intersects_path ( 기타 , 채워진 = True ) [소스] #

이 경로가 다른 주어진 경로와 교차하는지 여부를 반환합니다.

채워진 값이 True이면 한 경로가 다른 경로를 완전히 둘러싸는 경우(즉, 경로가 채워진 것으로 처리됨) 이것도 True를 반환합니다 .

iter_bezier ( ** kwargs ) [출처] #

경로의 각 베지어 곡선(선 포함)을 반복합니다.

매개변수 :
**kwargs

(으)로 전달되었습니다 iter_segments.

수확량 :
B matplotlib.bezier.BezierSegment

현재 경로를 구성하는 베지어 곡선입니다. 특히 독립형 점은 차수가 0인 베지어 곡선이고 선은 차수가 1인 베지어 곡선(2개의 제어점이 있음)입니다.

코드 Path.code_type

반환되는 곡선의 종류를 설명하는 코드입니다. Path.MOVETO, Path.LINETO, Path.CURVE3, Path.CURVE4는 각각 1, 2, 3, 4개의 제어점이 있는 베지어 곡선에 해당합니다. Path.CLOSEPOLY는 현재 스트로크의 시작/끝점을 기준으로 제어점이 올바르게 선택된 Path.LINETO입니다.

iter_segments ( 변형 = 없음 , remove_nans = True , 클립 = 없음 , 스냅 = False , stroke_width = 1.0 , 단순화 = 없음 , 곡선 = True , 스케치 = 없음 ) [소스] #

경로의 모든 곡선 세그먼트를 반복합니다.

각 반복은 pair 를 반환합니다. 여기서 는 1-3개의 좌표 쌍의 시퀀스이고 는 코드입니다.(vertices, code)verticescodePath

또한 이 방법은 여러 가지 표준 정리 및 경로 변환을 제공할 수 있습니다.

매개변수 :
없음 또는Transform

None이 아니면 주어진 아핀 변환이 경로에 적용됩니다.

remove_nans 부울, 선택 사항

경로에서 모든 NaN을 제거하고 MOVETO 명령을 사용하여 건너뛸지 여부입니다.

클립 없음 또는 (float, float, float, float), 선택 사항

None이 아니면 경로를 잘라낼 사각형을 정의하는 4튜플(x1, y1, x2, y2)이어야 합니다.

스냅 없음 또는 부울, 선택 사항

True이면 모든 노드를 픽셀에 맞춥니다. False이면 스냅하지 마십시오. 없음인 경우 경로에 x축 또는 y축에 평행한 세그먼트만 포함되고 1024개 이하인 경우 스냅합니다.

stroke_width 부동 소수점, 선택 사항

그려지고 있는 획의 너비(경로 맞추기에 사용됨).

단순화 없음 또는 부울, 선택 사항

모양에 영향을 주지 않는 정점을 제거하여 경로를 단순화할지 여부입니다. 없음인 경우 should_simplify속성을 사용합니다. rcParams["path.simplify"](기본값: True) 및 rcParams["path.simplify_threshold"](기본값: ) 도 참조하십시오 0.111111111111.

곡선 부울, 선택 사항

True이면 곡선 세그먼트가 곡선 세그먼트로 반환됩니다. False이면 모든 곡선이 선분으로 변환됩니다.

스케치 없음 또는 시퀀스, 선택 사항

None이 아닌 경우 스케치 매개변수를 나타내는 형식(축척, 길이, 임의성)의 3-튜플이어야 합니다.

classmethod make_compound_path ( * args ) [소스] #

Path개체 목록에서 복합 경로를 만듭니다 . 맹목적으로 모든 Path.STOP제어점을 제거합니다.

classmethod make_compound_path_from_polys ( XY ) [소스] #

변의 수가 같은 여러 다각형을 그리는 복합 경로 객체를 만듭니다. XY는 정점의 (numpolys x numsides x 2) numpy 배열입니다. 반환 객체는 입니다 Path.

( 소스 코드 , png )

../_images/histogram_path_00_00.png
속성 읽기 전용 #

TruePath읽기 전용인 경우 .

속성 should_simplify #

True정점 배열을 단순화해야 하는 경우.

속성 단순화_임계값 #

정점이 단순화되는 픽셀 차이의 비율입니다.

to_polygons ( 변환 = 없음 , 너비 = 0 , 높이 = 0 , closed_only = True ) [소스] #

이 경로를 폴리곤 또는 폴리라인 목록으로 변환합니다. 각 폴리곤/폴리라인은 정점의 Nx2 배열입니다. 즉, 각 다각형에는 MOVETO지침이나 곡선이 없습니다. 이는 복합 경로 또는 베지어 곡선을 지원하지 않는 백엔드에 표시하는 데 유용합니다.

너비높이 가 모두 0이 아닌 경우 선이 단순화되어 (0, 0), (너비, 높이) 외부의 정점이 잘립니다.

closed_only 가 (기본값)인 경우 True마지막 점이 첫 번째 점과 동일한 닫힌 다각형만 반환됩니다. 경로에서 닫히지 않은 폴리라인은 명시적으로 닫힙니다. closed_only 가 이면 False경로의 닫히지 않은 다각형은 닫히지 않은 다각형으로 반환되며 닫힌 다각형은 마지막 점을 첫 번째 점과 동일하게 설정하여 명시적으로 닫힌 것으로 반환됩니다.

변환 ( 변환 ) [소스] #

경로의 변환된 복사본을 반환합니다.

또한보십시오

matplotlib.transforms.TransformedPath

변환된 결과를 캐시하고 변환이 변경되면 자동으로 업데이트되는 특수 경로 클래스입니다.

classmethod unit_circle ( ) [출처] #

Path단위 원 의 읽기 전용을 반환합니다 .

대부분의 경우 Path.circle()원하는 대로 됩니다.

classmethod unit_circle_righthalf ( ) [출처] #

Path단위원의 오른쪽 절반의 a를 반환합니다 .

Path.circle사용된 근사치에 대한 참조는 를 참조 하십시오 .

classmethod unit_rectangle ( ) [출처] #

Path(0, 0)에서 (1, 1)까지 단위 사각형 의 인스턴스를 반환합니다 .

classmethod unit_regular_asterisk ( numVertices ) [소스] #

Path주어진 numVertices와 반지름이 1.0이고 중심이 (0, 0)인 단위 일반 별표에 대해 a를 반환합니다 .

classmethod unit_regular_polygon ( numVertices ) [소스] #

외접원의 반지름이 1.0이고 중심이 (0, 0)이 되도록 지정된 numVerticesPath 를 가진 단위 정다각형 의 인스턴스를 반환합니다 .

classmethod unit_regular_star ( numVertices , innerCircle = 0.5 ) [소스] #

Path주어진 numVertices와 반지름이 1.0이고 중심이 (0, 0)인 단위 일반 별에 대해 a를 반환합니다 .

속성 정점 #

PathNx2 numpy 배열 의 정점 목록입니다 .

classmethod wedge ( theta1 , theta2 , n = None ) [출처] #

각도 theta1 에서 theta2Path 까지의 단위 원 쐐기에 대해 a를 반환합니다 (도 단위).

theta2 는 360도 내에서 가장 짧은 쐐기를 생성하기 위해 풀립니다. 즉, theta2 > theta1 + 360인 경우 쐐기는 theta1 에서 theta2 - 360이 되며 완전한 원과 일부 추가 오버랩이 아닙니다.

n 이 제공 되면 만들 스플라인 세그먼트의 수입니다. n 이 제공되지 않으면 스플라인 세그먼트의 수는 theta1theta2 사이의 델타를 기반으로 결정 됩니다.

Path.arc사용된 근사치에 대한 참조는 를 참조 하십시오 .

matplotlib.path. get_path_collection_extents ( master_transform , paths , transforms , offsets , offset_transform ) [소스] #

Patha 에서 찾을 수 있는 s, Transforms 개체 및 오프셋의 시퀀스가 ​​주어지면 PathCollection모든 항목을 캡슐화하는 경계 상자를 반환합니다.

매개변수 :
master_transformTransform

모든 경로에 적용되는 전역 변환입니다.

경로 목록Path
변환 목록Affine2D
오프셋 (N, 2) 배열과 유사
offset_transformAffine2D

경로를 오프셋하기 전에 오프셋에 적용된 변환입니다.

메모

경로 , 변환오프셋 이 결합되는 방식 은 컬렉션과 동일한 방법을 따릅니다. 각각은 독립적으로 반복되므로 3개의 경로, 2개의 변환 및 1개의 오프셋이 있는 경우 조합은 다음과 같습니다.

(A, A, A), (B, B, A), (C, A, A)