matplotlib.path
#
Matplotlib 전체에서 사용되는 폴리라인을 처리하기 위한 모듈입니다.
Matplotlib에서 폴리라인 처리를 위한 기본 클래스는 Path
. 거의 모든 벡터 드로잉은 Path
드로잉 파이프라인 어딘가에서 s를 사용합니다.
인스턴스 Path
자체를 그릴 수는 없지만 편리한
시각화 를 위해 및 Artist
와 같은 일부 하위 클래스를 사용할 수 있습니다.PathPatch
PathCollection
Path
- 클래스 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_segments
orcleaned
를 사용하여 정점/코드 쌍을 가져와야 합니다. 이는 특히 코드 가 없음 인 경우를 일관되게 처리하는 데 도움이 됩니다 .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 에서 theta2
Path
까지의 단위 원 호에 대해 a를 반환 합니다(단위 : 도).theta2 는 언래핑되어 360도 내에서 가장 짧은 호를 생성합니다. 즉, theta2 > theta1 + 360인 경우 호는 theta1 에서 theta2 - 360까지이며 완전한 원과 추가 오버랩이 아닙니다.
n 이 제공 되면 만들 스플라인 세그먼트의 수입니다. n 이 제공되지 않으면 스플라인 세그먼트의 수는 theta1 과 theta2 사이의 델타를 기반으로 결정 됩니다.
Masionobe, L. 2003. 폴리라인, 2차 또는 3차 베지어 곡선을 사용하여 타원형 호 그리기 .
- classmethod circle ( center = (0.0, 0.0) , radius = 1.0 , readonly = False ) [출처] #
Path
주어진 반지름과 중심의 원을 나타내는 를 반환합니다 .- 매개변수 :
- 센터 (float, float), 기본값: (0, 0)
원의 중심입니다.
- 반지름 부동 소수점, 기본값: 1
원의 반지름입니다.
- 읽기 전용 부울
Path 인스턴스를 생성할 때 생성된 경로에 "readonly" 인수를 설정해야 하는지 여부입니다.
메모
원은 다음에 설명된 대로 8개의 입방체 베지어 곡선을 사용하여 근사화됩니다.
랭커스터, 돈. 4개의 베지어 큐빅 스플라인을 사용하여 원 또는 타원 근사화 .
- 정리 됨 ( 변환 = 없음 , remove_nans = False , 클립 = 없음 , * , 단순화 = False , 곡선 = False , stroke_width = 1.0 , snap = False , 스케치 = 없음 ) [소스] #
매개변수에 따라 정리된 정점과 코드가 있는 새 경로를 반환합니다.
또한보십시오
Path.iter_segments
키워드 인수에 대한 자세한 내용은
- clip_to_bbox ( bbox , 내부 = True ) [소스] #
지정된 경계 상자의 경로를 자릅니다.
경로는 하나 이상의 닫힌 다각형으로 구성되어야 합니다. 이 알고리즘은 닫히지 않은 경로에 대해 올바르게 작동하지 않습니다.
inside 가 이면
True
상자 안쪽에 클립하고, 그렇지 않으면 상자 외부에 클립합니다.
- 코드_유형 #
별칭
uint8
- 속성 코드 #
Path
1D numpy 배열 의 코드 목록입니다 . 각 코드는STOP
,MOVETO
,LINETO
, 또는CURVE3
중 하나입니다 . 하나 이상의 꼭짓점( 및 )에 해당하는 코드의 경우 및 의 길이 가 항상 동일하도록 해당 코드가 반복됩니다.CURVE4
CLOSEPOLY
CURVE3
CURVE4
vertices
codes
- 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 만큼 이동한 경로 ).
닫힌 영역이 없는 경우 결과는 정의되지 않습니다. 즉, 모든 정점이 직선에 있습니다.
반경 이동 으로 인해 경계선이 서로 교차하기 시작 하면 결과가 정확하지 않을 수 있습니다.
- get_extents ( 변환 = 없음 , ** kwargs ) [소스] #
경로의 Bbox를 가져옵니다.
- 매개변수 :
- 변환 matplotlib.transforms.Transform, 선택 사항
범위를 계산하기 전에 경로에 적용하기 위해 변환합니다(있는 경우).
- **kwargs
(으)로 전달되었습니다
iter_bezier
.
- 반환 :
- matplotlib.transforms.Bbox
경로 Bbox([[xmin, ymin], [xmax, ymax]])의 범위
- 정적 해치 ( 해치패턴 , 밀도 = 6 ) [소스] #
해치 지정자가 주어졌을 때 hatchpattern 은 반복되는 해칭 패턴에 사용할 수 있는 경로를 생성합니다. 밀도 는 단위 제곱당 선의 수입니다.
- 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)
vertices
code
Path
또한 이 방법은 여러 가지 표준 정리 및 경로 변환을 제공할 수 있습니다.
- 매개변수 :
- 없음 또는
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_from_polys ( XY ) [소스] #
변의 수가 같은 여러 다각형을 그리는 복합 경로 객체를 만듭니다. XY는 정점의 (numpolys x numsides x 2) numpy 배열입니다. 반환 객체는 입니다
Path
.
- 속성 단순화_임계값 #
정점이 단순화되는 픽셀 차이의 비율입니다.
- 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_regular_asterisk ( numVertices ) [소스] #
Path
주어진 numVertices와 반지름이 1.0이고 중심이 (0, 0)인 단위 일반 별표에 대해 a를 반환합니다 .
- classmethod unit_regular_polygon ( numVertices ) [소스] #
외접원의 반지름이 1.0이고 중심이 (0, 0)이 되도록 지정된 numVertices
Path
를 가진 단위 정다각형 의 인스턴스를 반환합니다 .
- classmethod unit_regular_star ( numVertices , innerCircle = 0.5 ) [소스] #
Path
주어진 numVertices와 반지름이 1.0이고 중심이 (0, 0)인 단위 일반 별에 대해 a를 반환합니다 .
- classmethod wedge ( theta1 , theta2 , n = None ) [출처] #
각도 theta1 에서 theta2
Path
까지의 단위 원 쐐기에 대해 a를 반환합니다 (도 단위).theta2 는 360도 내에서 가장 짧은 쐐기를 생성하기 위해 풀립니다. 즉, theta2 > theta1 + 360인 경우 쐐기는 theta1 에서 theta2 - 360이 되며 완전한 원과 일부 추가 오버랩이 아닙니다.
n 이 제공 되면 만들 스플라인 세그먼트의 수입니다. n 이 제공되지 않으면 스플라인 세그먼트의 수는 theta1 과 theta2 사이의 델타를 기반으로 결정 됩니다.
Path.arc
사용된 근사치에 대한 참조는 를 참조 하십시오 .
- matplotlib.path. get_path_collection_extents ( master_transform , paths , transforms , offsets , offset_transform ) [소스] #
Path
a 에서 찾을 수 있는 s,Transform
s 개체 및 오프셋의 시퀀스가 주어지면PathCollection
모든 항목을 캡슐화하는 경계 상자를 반환합니다.- 매개변수 :
메모
경로 , 변환 및 오프셋 이 결합되는 방식 은 컬렉션과 동일한 방법을 따릅니다. 각각은 독립적으로 반복되므로 3개의 경로, 2개의 변환 및 1개의 오프셋이 있는 경우 조합은 다음과 같습니다.
(A, A, A), (B, B, A), (C, A, A)