데이터 시각화와 관련하여 데이터 세트를 표시하는 화려하고 흥미로운 모든 방법을 생각하면 재미있을 수 있습니다. 그러나 정보를 전달하려는 경우 항상 화려하지는 않습니다. 실제로 대부분의 경우 청중이 데이터를 이해하도록하려면 단순성이 중요합니다. 산포도, 막대 그래프 또는 선 그래프에 관계없이 일반적인 그래프 유형을 사용하면 대상을 쉽게 이해할 수 있으므로 메시지를보다 쉽게 공유 할 수 있습니다.

지금 우리는 선 그래프에 대해 이야기하고 있습니다. 선 그래프는 정보를 직선 세그먼트로 연결된 일련의 데이터 요소로 표시하는 그래프 유형입니다.

Netflix stock의 가격 (NFLX)이 선 그래프로 표시됩니다.

Netflix stock의 가격 (NFLX)이 선 그래프로 표시됩니다.

4 개 주요 도시의 월 평균 기온 그래프

4 개 주요 도시의 월 평균 기온 그래프
R을 사용하여 선 그래프를 그릴 수있는 여러 가지 방법이 있지만, 많이 선호된는 것은 ggplot geom_line 함수입니다.

 

ggplot 소개

ggplot geom_line함수 를 사용하여 선 그래프를 작성하기 전에 ggplotR을 사용하여 그래프를 그릴 때 가장 좋은 방법이라고 생각하는 이유를 간단히 설명하고자합니다 .

ggplot 은 R로 그래프를 만드는 패키지이지만, 복잡한 그래프를 생각하고 논리적 인 서브 유닛으로 분해하는 방법이기도합니다.

ggplot은 그래프의 각 구성 요소 (축, 스케일, 색상, 객체 등)를 사용하여 한 번에 하나씩 구성 요소를 그래프로 작성할 수 있습니다. 그런 다음 유연하고 사용하기 쉬운 방식으로 각 구성 요소를 수정할 수 있습니다. 구성 요소를 지정하지 않으면 ggplot은 적절한 기본값을 사용합니다. 이것은 ggplot을 R로 모든 종류의 그래프를 생성 할 수있는 강력하고 유연한 도구로 만듭니다.

 

데이터 세트 조사

이 게시물을 통해 우리는 R에 내장 된 Orange 데이터 세트를 사용할 것입니다.이 데이터 세트에는 5 개의 다른 주황색 나무의 나이와 둘레에 대한 정보가 포함되어있어이 나무가 시간 경과에 따라 어떻게 성장하는지 볼 수 있습니다. 이 데이터 세트를 살펴 보겠습니다.

Orange 데이터 세트 스 니펫
데이터 세트에는 Tree, age 및 cimcumference의 3 개의 열이 있습니다. 각 나무에는 7 가지 관측이 있고, 5 가지의 나무가 있으며 총 35 회의 관측이 이루어집니다.

ggplot + geom_line ()의 간단한 예

센터

여기서 우리는 geom_line을 사용하여 가장 간단한 선 그래프로 시작합니다. 이 간단한 그래프의 경우 첫 번째 트리의 크기만 그래프로 표시했습니다. dplyr을 사용하여 첫 번째 트리에만 데이터 세트를 필터링한 후 ggplot + geom_line ()을 사용하여 그래프를 작성했습니다.

먼저 ggplot을 호출하여 새로운 ggplot 그래프를 만듭니다. 기본적으로 데이터와 그래픽을 추가할 빈 캔버스입니다. 이 경우 tree_1을 ggplot으로 전달하여이 특정 ggplot 그래프에 tree_1 데이터를 사용할 것임을 나타냅니다.

다음으로 이 라인을 만들기 위해 geom_line 호출을 기본 ggplot 그래프에 추가했습니다. ggplot 에서는 + 기호를 사용하여 기존 그래프에 새 레이어를 추가합니다. 이 두 번째 계층에서는 ggplot에 age를 x 축 변수로, 둘레를 y 축 변수로 사용하도록 지시했습니다.

 

ggplot + geom_line 에서 선 색상 변경

이 예제를 확장하여 이제 색상을 약간 실험 해 봅시다.

센터

이 geom_line 호출은 행 끝에 끝에 수정 자 color = 'red'을 추가 한 것을 제외하고는 이전과 동일합니다. 다른 색상으로 조금 시험 해보고 이것이 어떻게 작동하는지 확인하십시오. 생각할 수있는 대부분의 색상 이름을 사용하거나 특정 16 진 색상 코드를 사용하여보다 세분화 할 수 있습니다.

이제 조금 다른 것을 시도해 봅시다. 아래의 ggplot 코드를 위에서 방금 실행 한 코드와 비교하십시오. 3 가지 차이점이 있습니다. 그것들을 찾아서 어떤 일이 일어날 지 추측 한 다음 아래로 스크롤하여 결과를보십시오.

 

센터

이 선 그래프는 우리가 위에서 생성 한 선 그래프와는 상당히 다르지만 코드를 약간 수정했습니다. 3 가지 변화는 다음과 같습니다.

  1. 데이터 세트가 tree_1 (필터링 된 데이터 세트)에서 완전한 주황색 데이터 세트로 변경되었습니다.
  2. color = 'red'를 지정하는 대신 color = Tree를 지정했습니다.
  3. 색상 매개 변수를 aes() 괄호 안에 옮겼습니다.

다음 각 변경 사항을 검토해 보겠습니다.

tree_1에서 Orange로 이동 중

이 변경은 비교적 간단합니다. 단일 트리의 데이터 만 그래프로 표시하는 대신 5 개의 트리 모두에 대한 데이터를 그래프로 표시하려고했습니다. ggplot() 호출에서 입력 데이터 세트를 변경하여이를 수행합니다.

괄호 안에 지정 color = Tree및 이동aes()

이 두 가지 변화가 함께 작용하기 때문에 이것들을 결합하고 있습니다. 이전에 우리는 geom_line() 호출에 color = 'red'를 추가하여 ggplot에 선의 색을 빨강으로 바꾸라고했습니다. 여기서하는 일은 좀 더 복잡합니다. 라인에 단일 색상을 지정하는 대신 ggplotTree 열의 데이터를 색상 미학에 매핑하도록 지시합니다. 실제로 ggplot에 데이터의 각 트리마다 다른 색상을 사용하도록 지시하고 있습니다! 이 매핑을 통해 ggplot은 트리를 식별하기 위해 범례를 작성해야하며이를 자동으로 배치합니다.

 

선 종류 변경 ggplot + geom_line

관련 예제를 살펴 보겠습니다. 이번에는 선 그래프의 색을 변경하는 대신 선 종류를 변경합니다.

센터

ggplot + geom_line() 호출은 색상에 대한 선 종류를 대체 한 것을 제외하고는 방금 검토 한 것과 동일합니다. 생성 된 그래프는 매우 유사하지만 그래프에서 다른 색상 대신 다른 선 종류를 사용합니다. 예를 들어 흑백으로 인쇄 할 때 이와 같은 것을 사용하는 것이 좋습니다.

 

ggplot의 aes() (미적) 매핑에 대한 심층 리뷰

방금 선 그래프에서 Tree 변수를 색상 또는 선 종류에 매핑하는 그래프를 ggplot에서 만드는 방법을 보았습니다. ggplot은 이러한 매핑을 미적 매핑 이라고하며 ggplotaes() 내에 표시되는 모든 것을 포함합니다. 미적 매핑은 데이터의 변수를 그래프의 특정 시각적 속성 (미학)에 매핑하는 방법입니다. 이것은 모두 이론적으로 들릴 수 있으므로 이미 본 특정 미적 매핑과 geom_line 내에서 사용 가능한 다른 매핑을 검토하겠습니다.

geom_line 미적 매핑 목록 검토

주요 미적 맵핑은 ggplot + geom_line()다음과 같습니다.

  • x: 변수를 X 축의 위치에 매핑
  • y: 변수를 y 축의 한 위치에 매핑
  • color: 변수를 선 색상에 매핑
  • linetype: 변수를 선 종류로 매핑
  • group: 변수를 그룹에 매핑 (개별 그룹의 각 그룹)
  • size: 변수를 라인 크기에 매핑
  • alpha: 변수를 라인 투명도에 매핑

위 목록에서 우리는 이미 x, y, 색상 및 선 종류의 미적 매핑을 보았습니다.

xy는 첫 번째 ggplot + geom_line() 함수 호출에서 변수 age 와 둘레를 x 축과 y 축 값에 매핑하는데 사용했습니다. 그런 다음 색상과 선 종류를 사용하여 Tree 변수를 다른 색상의 선이나 선 종류에 매핑하는 실험을했습니다. 그 외에도 geom_line과 함께 자주 사용되는 3 가지 주요 미적 매핑이 있습니다.

group 매핑을 통해 변수를 다른 그룹에 매핑 할 수 있습니다. geom_line 내에서 변수를 다른 라인에 매핑하는 것을 의미합니다. 이미 본 색상 및 선 종류의 미적 매핑의 분리된 버전으로 생각하면 됩니다. color 미학이 각 트리를 다른 색상의 다른 선에 매핑하는 동안 group 미학은 각 트리를 다른 선에 매핑하지만 선을 색상 또는 기타로 구분하지는 않습니다.

ggplot + geom_line에서 group 미학 매핑 변경

센터

이전과 같이 5 개의 선이 분리되어 있지만 선은 모두 검은 색이어서 차별화 된 전설이 없습니다. 함께 작업하는 데이터에 따라 적절하지 않을 수도 있습니다. 그것은 최대의 사용자 데이터에 대해 잘 알고있는 사람은 그래프 형태를 표현하기 위해 최선의 방법을 결정하기로!

오렌지 트리 데이터 세트에서 시간이 지남에 따라 특정 오렌지 나무가 어떻게 자랐 는지 조사하는 데 관심이 있다면 미학 color또는 linetype미학을 사용하여 특정 나무의 진행 상황을 추적 할 수 있습니다. 대신에 오렌지 나무 가 일반적으로 성장 하는 방식에만 관심이 있다면 group미학 을 사용하는 것이 적절합니다. 그래프를 단순화하고 불필요한 세부 사항을 삭제하십시오.

ggplot유연하고 강력한 모두이지만까지의 당신 당신이 보여주고 싶은 것을 전달하는 그래프를 디자인 할 수 있습니다. 네가 할 수 있다고해서 네가 해야 한다는 뜻은 아니다 . 그래프로 전달하고자하는 메시지에 대해 항상 생각해보고 그 원칙을 바탕으로 설계해야합니다.

우리는 다음 두 가지 미학을 검토하면서 이것을 명심하십시오. 이러한 미학은 절대적으로 데이터 시각화의 장소를 가지고 있지만, 우리가 작업하고있는 특정 데이터 세트의 경우에는별로 의미가 없습니다. 그러나 이것은 오렌지 나무의 성장을 그래프 로 보여주는 것이 아니라 geom_linein 을 사용하는 가이드입니다 ggplot. 그래서 나는 그것들을 완벽을 기하기 위해 커버 할 것입니다!

의 투명성을 변경 ggplot + geom_line와 alpha미학

센터

여기에서 Tree 변수를 선의 투명도를 제어하는 alpha 미학에 매핑합니다. 보시다시피 특정 선은 다른 선보다 투명합니다. 이 경우 그래프에 대한 이해에 투명성이 추가되지 않으므로이 데이터 세트를 설명하는 데 사용하지 않습니다.

 

ggplot + geom_line에서 크기 미적 매핑 변경

센터

마지막으로 선의 크기를 조절하는 크기 미학으로 돌아갑니다. 다시 말하지만, 이것이이 맥락에서 우리의 데이터를 이해하는데 도움이되지 않는다고 말할 수 있습니다. 그것은 나폴레옹의 비참한 1812 러시아 캠페인의 사망자 수에 대한 챨스 조셉 미나드의 유명한 그래프 와 약간 닮았습니다 . 그래서 그것은 멋집니다.

마지막으로 선의 크기를 제어하는 크기 미학으로 전환합니다. 다시 말하지만, 이 맥락에서 데이터에 대한 이해에 추가되지는 않는다고 말할 것입니다. 즉, 그것은 나폴레옹의 비참한 1812 러시아 캠페인의 사망자 수에 대한 Charles Joseph Minard의 유명한 그래프와 약간 유사합니다.

Orange 데이터 세트 스 니펫

ggplot의 미적 매핑 vs. 파라미터

이전에는 geom_line을 사용하여 두 가지 방법으로 색상을 사용할 수 있음을 확인했습니다. 먼저 aes() 매핑 외부에 color = 'red'를 지정하여 선의 색상을 빨간색으로 설정할 수있었습니다. 그런 다음 aes() 매핑 내부에 color = Tree를 지정하여 변수 Tree를 색상에 매핑 할 수있었습니다. 본질적으로, 그들은 모두 색상과 동일하게 작동합니다! ggplot에서 그래프를 작성하는 데있어 아름다운 점입니다. 구문을 이해하면 기능을 확장하는 것이 매우 쉽습니다.

지금까지 본 각각의 미적 맵핑은 매개 변수, 즉 aes() 심미적 맵핑 외부에 정의 된 고정 된 값으로 사용될 수 있습니다. 전에 color = 'red'로 선을 빨간색으로 설정할때 이 작업을 수행하는 방법을 보았습니다. 이제 같은 방식으로 선 종류를 사용하여 이 작업을 수행하는 방법의 예를 살펴 보겠습니다.

 

센터

 

linetypesize그리고 alpha가 허용하는 값을 검토하려면 콘솔 창에서?linetype?size또는 ?alpha를 실행하십시오!

 

ggplot의 미적 매핑 및 매개 변수와 관련된 일반적인 오류

R과 ggplot을 시작할 때, 미학 맵핑 ( 당신의 내부에 포함 된 값 aes())과 매개 변수 ( 당신의 바깥에 있는 것들은 당신 aes()을 가장 많이 트 랩핑시킨 개념이었습니다.)을 통해 이러한 문제들을 다루는 법을 배울 것입니다. 시간이 지남에 따라,하지만 나는 당신이 눈을 뗄 수없는 몇 가지 일반적인 오류와 함께이 과정을 따라 속도를 도울 수 있습니다. R과 ggplot을 시작할 때 미적 매핑 통해 이러한 문제들을 다루는 법을 배울 것입니다.

aes() 호출 외부에 미적 매핑을 포함 시키려고 시도

Tree 변수를 선 종류에 매핑하려는 경우 geom_line 호출의 aes() 내에 linetype = tree를 포함해야합니다. 실수로 외부에 포함시키고 대신 ggplot(Orange) + geom_line(aes (x = age, y = circumference), linetype = Tree)를 실행하면 어떻게될까요? 다음과 같은 오류 메시지가 나타납니다.

ggplot geom_line 오류 메시지
객체를 찾을 수 없다는 오류가 표시 될 때마다 aes () 호출에 미적 매핑이 포함되어 있는지 확인하십시오!

ggplot geom_line 오류 메시지
객체를 찾을 수 없다는 오류가 표시 될 때마다 aes() 호출에 미적 매핑이 포함되어 있는지 확인하십시오!

aes() 호출 내부에 매개 변수를 지정하기 위해 호출

aes() 매핑 내부에 특정 매개 변수 값 (예 : color = 'red')을 지정하려고 하면 덜 직관적 인 문제가 발생합니다.

센터

이 경우 ggplot은 실제로 라인 그래프를 생성하지만 의도한 결과를 얻지 못합니다. 생성한 그래프는 5 개의 트리에 대한 값을 이전과 같이 5 개의 개별 라인이 아닌 단일 라인에 배치하기 때문에 이상하게 보입니다. 색상을 빨간색으로 변경했지만 단순히 ‘빨간색’이라는 범례도 포함되었습니다. 이와 같은 문제가 발생하면 aes() 호출 외부에 그래프 매개 변수가 포함되어 있는지 다시 확인하십시오!

이제 ggplotgeom_line을 사용하여 라인 그래프를 그리는데 있어서 R을 사용하는 방법에 대해 잘 이해하셨을 겁니다. 배운 것들을 연습하여 더 깊은 이해를 하시기 바랍니다. 연습으로, 다른 데이터셋과 적어도 하나의 미적 매핑을 사용하여 자신 만의 선 그래프를 만들어보십시오.

참조: A Detailed Guide to Plotting Line Graphs in R using ggplot geom_line

(Visited 96 times, 4 visits today)