1. 상관 관계 (Correlation)

다음 플롯은 두 변수의 상관 관계를 조사하는 데 도움이됩니다.

산점도 (Scatterplot)

데이터 분석에 가장 많이 사용되는 플롯은 의심의 여지없이 산점도입니다. 두 변수 사이의 관계의 본질을 이해하고자 할 때마다 항상 첫 번째 선택은 산점도입니다.

geom_point()를 사용하여 그릴 수 있습니다. 또한 기본적으로 황토에 기초한 매끄러운 선을 그리는 geom_smooth는 method = ’lm’을 설정하여 가장 잘 맞는 선을 그릴 수 있도록 조정할 수 있습니다.

원통형의 산점도

결과를 제시 할 때 차트의 특정 특수 그룹이나 영역을 끌어들이는 경우가 있습니다. 이러한 특별한 경우는 주의를 끌기 위해서입니다. 이것은 ggalt 패키지의 geom_encircle()을 사용하여 편리하게 수행 할 수 있습니다.

geom_encircle() 내에서 점 (행) 또는 관심 만 포함하는 새 데이터 프레임에 데이터를 설정합니다. 또한 곡선을 확장하여 점 외부로 전달할 수 있습니다. 곡선의 색상과 크기 (두께)도 수정할 수 있습니다. 아래 예제를 참조하십시오.

지터(Jitter) 플롯

산점도를 그리는 새로운 데이터를 살펴 보겠습니다. 이번에는 mpg 데이터 세트를 사용하여 도시 주행 거리 (cty)와 고속도로 주행 거리 (hwy)를 표시합니다.

여기 있는 것은 mpg 데이터 세트의 도시 및 고속도로 주행 거리의 산점도입니다. 우리는 비슷한 산점도를 보았으며 이것은 보기에 좋으며 도시 주행 거리 (cty)와 고속도로 주행 거리 (hwy)가 어떻게 상관이 있는지 명확하게 알 수 있습니다.

하지만,이 프롯은 뭔가를 숨기고 있습니다. 찾을 수 있나요?

원래 데이터의 데이터 포인트는 234 개이지만 차트의 포인트가 더 적게 표시됩니다. 무슨 일이 일어난 걸까요? 이것은 하나의 점으로 나타나는 많은 중첩 점이 있기 때문입니다. cty와 hwy가 소스 데이터 집합에 정수인 사실은이 세부 사항을 숨기는 것이 더 편리해졌습니다. 따라서 다음에 정수로 산점도를 만들 때 특히주의하십시오.

어떻게 처리할까요? 몇 가지 옵션이 있습니다. jitter_geom()을 사용하여 지터 줄거리를 만들 수 있습니다. 이름에서 알 수 있듯이 겹치는 점은 width 인수로 제어되는 임계 값을 기준으로 원래 위치에서 무작위로 지터 처리됩니다.

더 많은 포인트가 공개되었습니다. 폭이 넓을수록 더 많은 점들이 원래 위치에서 움직입니다.

카운트 차트 (Counts Chart)

데이터 포인트 중복 문제를 극복하기위한 두번째 옵션은 카운트 차트라는 것을 사용하는 것입니다. 거기에 더 많은 점들이 겹치기 때문에 원의 크기가 커집니다.

거품 플롯 (Bubble plot)

산점도는 2 개의 연속 변수 사이의 관계를 비교할 수 있지만 버블 차트는 다음을 기반으로하는 기본 그룹 내의 관계를 이해하려는 경우에 적합합니다.

  1. 범주 형 변수 (색상 변경)
  2. 다른 연속 변수 (점의 크기를 변경 함)

더 단순한 단어로, 거품형 차트는 두개가 숫자 (X 및 Y)이고 다른 하나가 범주형(색)이고 다른 숫자 변수(크기)인 4 차원 데이터가있는 경우에 더 적합합니다. 거품형 차트는 제조업체 간 이동 범위와 최적 맞춤선의 기울기가 어떻게 다른지를 명확하게 구분하여 그룹 간 시각적 비교를 향상시킵니다.

한계 히스토그램 (Marginal Histogram) / 상자 그림 (Box Plot)

같은 차트에 분포뿐만 아니라 관계를 표시하려면 한계 히스토그램을 사용하십시오. 산점도의 여백에 X 및 Y 변수의 히스토그램이 있습니다.

이것은 ggExtra패키지의 ggMarginal() 함수를 사용하여 구현할 수 있습니다. 히스토그램과 별도로 각 유형 옵션을 설정하여 한계 상자 플롯 또는 밀도 플롯을 그리도록 선택할 수 있습니다.

Correlogram

Correlogram은 동일한 데이터프레임에 있는 여러개의 연속 변수의 상관 관계를 조사하게 합니다. 이것은 corrplot 패키지를 사용하여 편리하게 구현됩니다.

2. 편차(Deviation)

고정된 참조와 관련하여 적은 수의 항목 (또는 카테고리) 사이의 값의 변동을 비교합니다.

분기 막대 (Diverging bars) 차트

분기 막대(Diverging Bars) 차트는 음수값과 양수값을 모두 처리할 수 있는 막대 차트입니다. geom_bar()를 사용하여 스마트하게 조정할 수 있습니다. 그러나 geom_bar()의 사용법은 매우 혼란 스러울 수 있습니다. 왜냐하면 막대 그래프와 히스토그램을 만드는 데 사용할 수 있기 때문입니다.

기본적으로 geom_bar()는 통계를 count로 설정합니다. 즉, 연속적인 X 변수 (그리고 Y 변수 없음)를 제공하면 데이터에서 히스토그램을 만들려고합니다.

막대형 차트 대신 막대 그래프를 만들려면 두 가지 작업이 필요합니다. – stat=identity 설정 – aes() 안에 x와 y 둘 다 제공합니다. 여기서 x는 문자 또는 인수이고 y는 숫자입니다.

범주 형 변수에는 막대 대신 분기 막대가 있는지 확인하기 위해 연속 변수의 특정 임계 값에서 값을 변경하는 범주가 두개 있습니다. 아래 예제에서 mtcars 데이터 세트의 mpg는 z 점수를 계산하여 정규화됩니다. mpg가 0보다 높은 차량은 녹색으로 표시되고 아래의 차량은 빨간색으로 표시됩니다.

롤리팝 차트

롤리팝 차트는 막대 차트 및 분기 막대와 동일한 정보를 전달합니다. 그것은 현대적으로 보입니다. geom_bar 대신에 geom_point와 geom_segment를 사용하여 막대 사탕을 올바르게 가져옵니다. 앞에서 언급 한 분기 막대의 예제에서 준비한 것과 동일한 데이터를 사용하여 롤리팝을 그립니다.

분기 점 플롯(Diverging Dot Plot)

도트 플롯은 유사한 정보를 전달합니다. 원칙은 점만 사용된다는 점을 제외하고 점 막대 막대에서 본 것과 같습니다. 아래 예제에서는 발산 막대 예제에서 준비된 것과 동일한 데이터를 사용합니다.

지역 차트 (Area Chart)

영역 차트는 일반적으로 특정 기준과 비교하여 특정 메트릭 (예 : 주식에서 반환된 수익률)을 시각화하는 데 사용됩니다. 다른 유형의 % 수익률 또는 % 변동 데이터도 일반적으로 사용됩니다. geom_area()는 이것을 구현합니다.

3. 순위 (Ranking)

서로 관련하여 여러 항목의 위치 또는 실적을 비교하는 데 사용됩니다. 실제 값은 순위보다 다소 중요합니다.

정렬 된 막 대형 차트

정렬 된 막대 차트는 Y 축 변수에 의해 정렬된 막대 차트입니다. 관심있는 변수로 데이터 프레임을 정렬하는 것만으로는 막대형 차트를 주문하기에 충분하지 않습니다. 가로 막대형 차트가 행의 순서를 유지하려면 X 축 변수 (즉, 카테고리)를 인수로 변환해야합니다.

mpg 데이터 세트로부터 각 제조업체의 평균 도시 마일리지를 계획 해봅시다. 먼저, 플롯을 그리기 전에 데이터를 집계하고 정렬하십시오. 마지막으로, X 변수는 인수로 변환됩니다.

X 변수는 이제 인자가되었습니다.

롤리팝 차트 (Lollipop Chart)

롤리팝 차트는 막대 차트에서와 같은 정보를 전달합니다. 두꺼운 막대를 얇은 선으로 줄이면 혼란을 줄이고 값에 더 중점을 둡니다. 근사하고 현대적입니다.

도트 플롯 (Dot Plot)

도트 플롯은 막대 사탕과 매우 유사하지만 라인이 없으면 수평 위치로 뒤집습니다. 실제 값과 관련하여 항목의 순위 순서에 대해 강조하고 서로에 대해 개체가 얼마나 멀리 떨어져 있는지 강조합니다.

기울기 차트 (Slope Chart)

경사도 차트는 2 가지 시점의 위치 게재 위치를 비교할 수있는 훌륭한 방법입니다. 현재로서는이를 구축할 기능이 없습니다. 다음 코드는 어떻게 접근 할 것인가에 대한 포인터 역할을합니다.

Year.5 Year.10 Year.15 Year.20
Prostate 99 95 87 81
Thyroid 96 96 94 95
Testis 95 94 91 88
Melanomas 89 87 84 83
Breast 86 78 71 75
Hodgkin’s 85 80 74 67
Uterus 84 83 81 79
Urinary 82 76 70 68
Cervix 71 64 63 60
Larynx 69 57 46 38

덤벨 플롯 (Dumbbell Plot)

덤벨 차트는 다음과 같은 경우에 유용한 도구입니다. 1. 두 지점 간 상대 위치 (예 : 성장 및 하락)를 시각화합니다. 2. 두 카테고리 간의 거리를 비교하십시오.

덤벨의 올바른 순서를 얻기 위해 Y 변수가 하나의 요소여야하고 factor 변수의 레벨은 줄거리에 표시되어야하는 순서와 같아야합니다.

4. 분포 (Distribution)

많은 데이터 포인트가 있고 데이터 포인트가 어디에 그리고 어떻게 분포되는지 연구하고 싶을 때 사용 됩니다.

히스토그램 (Histogram)

기본적으로 하나의 변수만 제공되는 경우 geom_bar()는 개수를 계산합니다. 막대 차트처럼 동작하려면 stat = identity 옵션을 설정해야하며 x 및 y 값을 제공해야합니다.

연속 변수의 히스토그램

연속 변수의 막대 그래프는 geom_bar() 또는 geom_histogram()을 사용하여 수행 할 수 있습니다. geom_histogram()을 사용할때 bins 옵션을 사용하여 막대 수를 제어 할 수 있습니다. 그렇지 않으면 binwidth를 사용하여 각 bin에서 처리 할 범위를 설정할 수 있습니다. binwidth의 값은 히스토그램이 작성되는 연속 변수와 동일한 스케일입니다. geom_histogram은 빈의 수와 빈의 수를 모두 제어 할 수있는 기능을 제공하므로 연속 변수에 대해 히스토그램을 만드는 것이 좋습니다.

범주 형 막대 그래프의 히스토그램 (Histogram on a categorical variable)

범주형 변수의 막대 그래프는 각 범주의 막대를 표시하는 빈도 차트로 나타납니다. 너비를 조정하여 바의 두께를 조정할 수 있습니다.

밀도 플롯 (Density plot)

박스 플롯 (Box Plot)

Box Plot은 분포를 연구하는 훌륭한 도구입니다. 또한 중앙값, 범위 및 이상치가 있는 경우 여러 그룹 내의 분포도를 표시 할 수 있습니다.

상자 안의 어두운 선은 중앙값을 나타냅니다. 상자의 상단은 75%ile 이고 상자의 하단은 25% ile 입니다. 선의 종점 (수염이라고도 함)은 1.5 * IQR의 거리에 있으며, 여기서 IQR 또는 Inter Quartile Range는 25와 75 백분위 수 사이의 거리입니다. 수염 (Whisker) 바깥 쪽의 점들은 점으로 표시되고 일반적으로 극한 점으로 간주됩니다.

varwidth = T로 설정하면 상자의 너비가 포함 된 관측 값의 수에 비례하여 조정됩니다.

도트 + 박스 플롯 (Dot + Box Plot)

상자 플롯에서 제공하는 정보 외에 도트 플롯은 각 그룹별로 요약 통계 형태로 더 명확한 정보를 제공 할 수 있습니다. 점들은 서로 엇갈리게 배치되어 각 점이 하나의 관찰을 나타냅니다. 따라서 아래 차트에서 특정 제조업체의 점 개수는 소스 데이터의 해당 제조업체 행 수와 일치합니다.

투프 박스 플롯 (Tufte Boxplot)

ggthemes 패키지가 제공하는 Tufte box plot은 Edward Tufte의 작품에서 영감을 얻은 것입니다. Tufte’s Box Plot은 최소한의 시각적으로 매력적인 상자 플롯입니다.

바이올린 플롯 (Violin Plot)

바이올린 플롯은 박스 플롯과 유사하지만 그룹 내의 밀도를 보여줍니다. boxplots에서와 같이 제공되는 정보는 많지 않습니다. geom_violin()을 사용하여 그릴 수 있습니다.

인구 피라미드 (Population Pyramid)

인구 피라미드는 인구 또는 인구중 몇 퍼센트가 특정 카테고리에 속하는지를 시각화하는 독특한 방법을 제공합니다. 아래의 피라미드는 이메일 마케팅 캠페인 퍼널의 각 단계에서 얼마나 많은 사용자가 보유하고 있는지를 보여주는 훌륭한 예입니다.

5. 구성 (Composition)

와플 차트 (Waffle Chart)

와플 차트는 전체 인구의 범주 적 구성을 보여주는 좋은 방법입니다. 직접적인 기능은 없지만 geom_tile() 함수를 사용하여 ggplot2를 현명하게 조작하여 표현할 수 있습니다. 아래 템플릿은 자신 만의 와플을 만드는 데 도움이됩니다.

파이 차트 (Pie Chart)

파이 차트는 컴포지션을 보여주는 고전적인 방법은 전달 된 정보 측면에서 와플 차트와 동일합니다. 그러나 coord_polar()를 사용하여 ggplot2를 구현하는 것은 다소 까다 롭습니다.

트리맵 (Treemap)

트리맵은 중첩된 사각형을 사용하여 계층적 데이터를 표시하는 좋은 방법입니다. treemapify 패키지는 데이터를 원하는 형식으로 변환 (treemapify)하고 실제 플롯 (ggplotify)을 그리는 데 필요한 기능을 제공합니다.

트리 맵을 만들려면 treemapify()를 사용하여 데이터를 원하는 형식으로 변환해야합니다. 중요한 요구 사항은 데이터에 타일의 영역, 채우기 색상의 변수, 타일의 레이블이있는 변수, 마지막으로 상위 그룹을 나타내는 변수가 각각 하나씩 있어야한다는 것입니다.

데이터 포맷팅이 끝나면 trep 변환 된 데이터에 대해 ggplotify()를 호출하면됩니다.

바 차트 (Bar Chart)

기본적으로 geom_bar()는 통계를 count로 설정합니다. 즉, 연속적인 X 변수 (그리고 Y 변수 없음)를 제공하면 데이터에서 히스토그램을 만들려고합니다.

막 대형 차트 대신 막대 그래프를 만들려면 두 가지 작업이 필요합니다. stat = identity 를 지정합니다.

aes() 안에 x와 y 둘 다 제공합니다. 여기서 x는 문자 또는 인수이고 y는 숫자입니다. 막대형 차트는 범주형 열 변수 또는 별도의 빈도 테이블에서 가져올 수 있습니다. 너비를 조정하여 바의 두께를 조정할 수 있습니다. 데이터 소스가 빈도 테이블 인 경우, 즉 ggplot에서 개수를 계산하지 않으려면 geom_bar() 내부에 stat = identity를 설정해야합니다.

열 변수에서도 직접 계산할 수 있습니다. 이 경우 X 만 제공되고 stat = identity는 설정되지 않습니다.

6. 변화 (Change)

시계열 객체 (ts)에서 시계열 플롯

ggfortify 패키지를 사용하면 autoplot이 자동으로 시계열 객체 (ts)에서 직접 플롯할 수 있습니다.

데이터 프레임에서 시계열 플롯 (Time Series Plot From a Data Frame)

geom_line()을 사용하면 data.frame에서도 시계열 (또는 선형 차트)을 그릴 수 있습니다. X 축 나누기는 기본적으로 생성됩니다. 아래 예에서 휴식은 10 년에 한번 형성됩니다.

기본 X 축 레이블

월간 시계열에 대한 시계열 계획 (Time Series Plot For a Monthly Time Series)

X 축에서 자신 만의 시간 간격 (나누기)을 설정하려면 scale_x_date ()를 사용하여 나누기 및 레이블을 설정해야합니다.

연간 시계열에 대한 시계열 그림 (Time Series Plot For a Yearly Time Series)

긴 데이터 형식의 시계열 그림 : 동일한 데이터 프레임 열의 여러 시간 계열

이 예제에서는 긴 데이터 형식으로 ggplot을 구성합니다. 즉, 모든 열의 열 이름과 각 값은 두 개의 변수 (각각 변수와 값)에 쌓입니다. 이 데이터를 와이드 포맷으로 변환한다면 경제 데이터 세트처럼 보일것입니다.

아래 예제에서 geom_line은 value 열에 그려지고 aes(col)는 변수로 설정됩니다. 이 방법으로 geom_line을 한 번만 호출하면 변수 열의 고유 한 값마다 하나씩 여러 개의 컬러 라인이 그려집니다. scale_x_date ()는 X 축 나누기 및 레이블을 변경하고 scale_color_manual은 선의 색상을 변경합니다.

와이드 데이터 형식의 시간 계열 플롯 : 데이터 프레임의 여러 열에있는 데이터

플롯의 기하 구조 (점, 선, 막대 등)가 채우기, 크기, 열, 모양 또는 획을 다른 열을 기반으로 변경하면 범례가 자동으로 그려집니다.

그러나 넓은 데이터 형식에서 시계열 (또는 다른 유형의 플롯)을 만드는 경우 geom_line()을 모든 행에 대해 한 번 호출하여 수동으로 각 행을 그려야합니다. 따라서 전설은 기본적으로 그려지지 않습니다.

그러나 범례를 갖는 것이 여전히 좋을 것입니다. 이는 라인의 색상만 변경되는 경우 scale_color_manual()과 같은 scale_aesthetic_manual() 형식의 함수를 사용하여 수행 할 수 있습니다. 이 함수를 사용하면 name 인수와 함께 범례 제목을 부여하고 범례가 값 인수로 취할 색을 지정하고 범례 레이블을 설정할 수도 있습니다.

아래 플롯이 이전의 플롯과 정확히 같아 보이지만이를 구성하는 방법은 다릅니다.

왜 오래 전 데이터 형식에 대해 앞의 예제에서이 함수를 사용했는지 궁금 할 것입니다. 앞의 예에서는 행의 색상 만 변경하는 데 사용되었습니다. scale_color_manual()이 없으면 여전히 범례가 있지만 선은 다른 색(기본값)을 갖습니다. 그러나 현재 예제에서는 scale_color_manual()이 없어도 범례가 없습니다.

누적 영역 차트 (Stacked Area Chart)

누적 영역형 차트는 플롯 아래의 영역이 모두 색상이라는 점을 제외하면 선형 차트와 같습니다. 일반적으로 다음과 같은 경우에 사용됩니다.

시간이 지남에 따라 수량이나 수량 (가격과 같은 것보다)이 어떻게 변했는지 설명하고 싶습니다. 많은 데이터 포인트가 있습니다. 아주 적은 데이터 포인트의 경우 막 대형 차트 플로팅을 고려하십시오. 개별 구성 요소의 기여도를 표시하려고합니다. 이것은 geom_line과 매우 비슷하게 작동하는 geom_area를 사용하여 플롯 할 수 있습니다. 그러나 주목해야 할 중요한 점이 있습니다. 기본적으로 각 geom_area()는 Y 축 (일반적으로 0)의 맨 아래에서 시작하지만 개별 구성 요소의 컨트 리뷰 션을 표시하려면 geom_area를 이전 구성 요소의 맨 위에 쌓아두기를 원합니다.따라서 geom_area의 y를 설정하면서 모든 하단 레이어를 추가해야합니다.

아래의 예에서, 위의 geom_area()에 대해 y = psavert + uempmed로 설정했습니다. 줄거리가 멋지긴하지만, 너무 많은 구성 요소가 있으면 쉽게 복잡해지고 해석이 어려울 수 있습니다.

캘린더 히트맵 (Calendar Heatmap)

주식 가격과 같은 지표의 변화량, 특히 최고치와 최저치를보고 싶다면 캘린더 히트맵은 훌륭한 도구입니다. 시간의 경과에 따라 실제값 자체보다는 시각적으로 변화를 강조합니다.

이것은 geom_tile을 사용하여 구현할 수 있습니다. 그러나 올바른 형식으로 가져 오는 것은 플로팅 자체보다는 데이터 준비와 관련이 있습니다.

기울기 차트 (Slope Chart)

기울기 차트는 가치의 변화를 시각화하고 카테고리간에 순위를 지정하려는 훌륭한 도구입니다. 시간 지점이 거의 없을 때 시계열보다 적합합니다.

계절별 플롯 (Seasonal Plot)

ts 또는 xts 클래스의 시계열 객체로 작업하는 경우 forecast::ggseasonplot을 사용하여 그려진 계절별 플롯을 통해 계절적 변동을 볼 수 있습니다. 아래는 기본 AirPassengers 및 nottem 시계열을 사용하는 예입니다.

트래픽의 반복적 인 계절 패턴과 함께 수년 동안 항공 승객의 트래픽 증가를 확인할 수 있습니다. 노팅엄은 지난 몇년 동안 과도 기온 상승을 보이지 않았지만 분명히 계절적 패턴을 따른다.

7. 그룹들

Hierarchical Dendrogram

클러스터 (Clusters)

geom_encircle()을 사용하여 별개의 클러스터 또는 그룹을 표시 할 수 있습니다. 데이터 집합에 여러 가지 약한 기능이있는 경우 주 구성 요소를 계산하고 X 축 및 Y 축으로 PC1 및 PC2를 사용하여 산점도를 그릴 수 있습니다.

geom_encircle()은 원하는 그룹을 둘러싸 기 위해 사용될 수 있습니다. 주목할 점은 geom_circle()에 대한 데이터 인수뿐입니다. 그룹에 속한 관측치 (행) 만 데이터 인수로 포함하는 하위 집합 된 데이터 프레임을 제공해야합니다.

8. 공간 (Spatial)

ggmap 패키지는 Google지도 API와 상호 작용하고 플롯하려는 장소의 좌표 (위도와 경도)를 가져 오는 기능을 제공합니다. 아래의 예는 첸나이시의 위성, 도로 및 하이브리드지도를 보여 주며 일부 지역을 둘러 쌉니다. geocode() 함수를 사용하여 이러한 장소의 좌표를 얻었고 qmap()을 사용하여지도를 얻었습니다. 가져올 맵 유형은 사용자가 maptype에 설정 한 값에 의해 결정됩니다.

확대 / 축소 인수를 설정하여지도를 확대할 수도 있습니다. 기본값은 10입니다 (대도시에 적합). 축소하고자하는 경우이 숫자를 줄입니다 (최대 3 개). 그것은 건물에 적합한 21 시까 지 확대 할 수 있습니다. 한편, Google Map을 사용하기 위해서는 API Key 값을 등록해야 합니다.  (참조: 인증키 발급하러 가기)

 

 

참조 : Top 50 ggplot2 Visualizations – The Master List (With Full R Code)

(Visited 342 times, 3 visits today)