patchwork의 목표는 별도의 ggplot을 동일한 그래픽으로 결합하는것을 엄청나게 간단하게 만드는 것입니다. 따라서 gridExtra::grid.arrange()cowplot::plot_grid와와 동일한 문제를 해결하려고하지만 탐색 및 반복을 유발하는 API를 사용합니다.

https://github.com/thomasp85/patchwork

설치

아래와 같이 github에서 patchwork를 설치할 수 있습니다.

샘플 데이터 세트

4개의 ggplot 플롯 생성

두개의 플롯을 수평으로 배치

세개의 플롯을 세로로 배치

각 플롯의 상대 영역 변경

스페이서 플롯 추가

중첩 레이아웃 사용

서브트랙 배치를위한 연산자 -

직관적인 레이아웃을위한 연산자 /와 |

  • / 연산자 : 분자/분모의 개념처럼 플롯을 만듬
  • | 연산자 : or 처럼 플롯을 묶어 줌

다른 예제 1

고급 기능

patchwork는 플롯과 레이아웃을 함께 추가 할뿐만 아니라 관심있는 다른 연산자를 정의합니다. -+처럼 동작하지만 왼쪽과 오른쪽을 같은 중첩 수준에 배치합니다 (오른쪽을 왼쪽 중첩 수준에 배치하는 것과 반대).

이제 p1 + p2와 p3은 같은 수준에 있습니다.

만약 -가 서브트랙으로 읽히면, 플롯을 제거하지 않기 때문에 사용이 의미가 없습니다. 대신 하이픈으로 생각하십시오 …

종종 옆에 또는 위에 플롯을하는데 관심이 있을겁니다. patchwork는 두가지를 모두 제공합니다 |는 수평 및 수직 레이아웃 각각 물론 읽기 쉬운 레이아웃 구문을 위해 결합 될 수 있습니다.

코드 반복을 줄이기 위해 약간 다른 목적으로 사용되는 두개의 추가 연산자가 있습니다. 모든 플롯에 대한 테마를 변경하려는 경우를 고려하십시오. 모든 플롯을 개별적으로 수정하는 대신 & 또는 *를 사용하여 모든 하위 플롯에 요소를 추가 할 수 있습니다. *는 현재 중첩 레벨의 플롯에만 영향을 미칩니다.

반면 &는 내포 된 수준으로 되풀이됩니다.

전자의 경우 * 연산자의 우선 순위가 높기 때문에 괄호가 필요합니다. 후자의 경우가 가장 흔하므로 가장 쉽게 사용할 수 있습니다.

다른 예제 2

수평 레이아웃

수직 레이아웃

plot_layout() 호출을 어셈블에 추가하여 레이아웃을 지정할 수 있습니다. 이를 통해 격자의 치수와 다른 행과 열에 할당 할 공간의 크기를 정의 할 수 있습니다.

각 플롯의 치수 지정

높이 변경

넓이 변경

플롯 사이에 공간 추가

중첩 레이아웃

플롯의 일부를 괄호로 묶어 중첩 된 플롯 레이아웃을 만들 수 있습니다.이 경우 레이아웃의 범위는 다른 중첩 레벨로 지정됩니다.

고급 기능

patchwork는 관심을 가질만한 다른 연산자를 제공합니다. -,+ 처럼 동작하지만 왼쪽과 오른쪽을 동일한 중첩 수준에 배치합니다 (오른쪽을 왼쪽 중첩 수준에 배치하는 것과는 반대).

bxp + denslp의 레벨이 같은 것을 알 수 있습니다.

코드 반복을 줄이기 위해 약간 다른 목적으로 사용되는 두 개의 추가 연산자가 있습니다. 어셈블리의 모든 플롯에 대한 테마를 변경하려는 경우를 고려하십시오.

모든 플롯을 개별적으로 수정하는 대신 & 또는 *를 사용하여 모든 하위 플롯에 요소를 추가 할 수 있습니다. *는 현재 중첩 레벨의 플롯에만 영향을 미칩니다.

 

반면 &는 내포 된 수준으로 되풀이됩니다.

 

(Visited 30 times, 2 visits today)