데이터 시각화와 관련하여 데이터 집합을 표시하는 모든 화려하고 흥미 진진한 방법을 생각하는 것은 재미있을 수 있습니다. 그러나 정보를 전달하려는 경우, 화려하지 않아 항상가는 길은 아닙니다.

실제로 대부분의 경우 사용자의 데이터를 이해하는 데있어 단순함이 핵심 입니다. 그것의 여부 산포도 , 막대 그래프, 또는 선 그래프 (이 게시물의 제목은!), 일반적인 그래프 유형은보다 쉽게 메시지를 공유 할 수 있습니다 청중을위한 일을 쉽게.

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

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

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

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

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

ggplot 소개

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

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

ggplot그래프, 축, 눈금, 색, 객체 등의 각 구성 요소를 취해 한 번에 한 구성 요소 씩 순차적으로 그래프를 작성할 수 있습니다. 그런 다음 각 구성 요소를 유연하고 사용하기 쉬운 방식으로 수정할 수 있습니다. 구성 요소가 지정되지 않은 경우 ggplot적절한 기본값을 사용합니다. 이것은 ggplotR로 모든 종류의 그래프를 생성하기위한 강력하고 유연한 도구를 만듭니다. 저는 요즘 만드는 거의 모든 그래프를 만드는 데 사용하는 도구이며, 여러분도 사용해야한다고 생각합니다!

데이터 세트 조사

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

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

ggplot + geom_line ()의 간단한 예

센터

여기서는 geom_line을 사용하여 가능한 가장 단순한 선 그래프로 시작합니다. 이 간단한 그래프의 경우 첫 번째 트리의 크기 만 그래프로 나타 내기로했습니다. 내가 사용하는 dplyr유일한 첫 번째 트리에 데이터 집합을 필터링 할 수 있습니다. 당신이 익숙하지 않은 경우 dplyr의의 ‘ filter기능은 R에서 데이터 집합을 부분 집합의 나의 선호하는 방법은, 그리고 나는 최근에에 대한 심층적 인 가이드를 썼다 필터를 dplyr 더 알아 보려면!

일단 내가 관심있는 데이터 집합을 걸러 내고 나면 ggplot + geom_line()그래프를 생성하는 데 익숙해 졌습니다. 좀 더 자세히 살펴 보겠습니다.

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

다음으로, 이 선을 만들기 위해 geom_line기본 ggplot그래프에 대한 호출을 추가했습니다 . 에서 ggplot, 당신은 사용하는 +기존의 그래프에 새로운 레이어를 추가하는 기호. 이 두 번째 계층에서는 ggploty 축 변수로 age를 x 축 변수로 사용하고 원주를 y 축 변수로 사용하도록했습니다.

그게 전부입니다, 우리는 선 그래프를 가지고 있습니다!

의 선 색상 변경 ggplot + geom_line

이 예제를 확장하여 색상을 약간 실험 해 보겠습니다.

센터

이 geom_line 호출은 이전과 동일하지만 color = 'red'행의 끝에 수식자를 추가했다는 점만 빼면 됩니다. 다른 색상으로 약간 실험 해보고이 색상이 컴퓨터에서 어떻게 작동하는지 확인하십시오. 생각할 수있는 대부분의 색상 이름을 사용하거나 특정 16 진수 색상 코드를 사용하여보다 세분화 된 색상 이름을 사용할 수 있습니다.

자, 조금 다른 것을 시도해 봅시다. ggplot아래 코드를 방금 실행 한 코드와 비교하십시오 . 3 가지 차이점이 있습니다. 당신이 그들을 찾을 수 있는지, 그리고 무슨 일이 일어날 지 짐작하고, 결과를 살펴보기 위해 아래로 스크롤하십시오.

센터

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

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

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

tree_1에서 Orange로 이동 중

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

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

나는이 두 가지 변화가 함께 작용하기 때문에 이것들을 조합하고있다.

전에, 우리는 말했다 ggplot추가하여 빨간색 라인의 색상을 변경하기 위해 color = 'red'우리에게 geom_line()전화를 겁니다.

여기서 우리가하는 일은 좀 더 복잡합니다. 우리는 라인에 단일 색상을 지정하는 대신 열의 데이터를 미적 ggplot으로 매핑 하는 방법을 알려줍니다 .Treecolor

효과적으로 우리는 ggplot데이터에서 각 트리에 다른 색을 사용하려고합니다! 이 매핑은 또한 ggplot트리를 식별하는 범례를 작성해야한다는 것을 알 수 있으며 자동으로 트리를 배치합니다.

선 종류 변경 ggplot + geom_line

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

센터

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

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

ggplot선 그래프에서 트리 변수를 색 또는 선 종류로 매핑하는 방법을 보았습니다 . ggplot이 매핑을 미적 매핑으로 지칭 aes()하며 ggplot에서 볼 수있는 모든 것을 포함합니다 .

미학 맵핑은 데이터의 변수를 그래프의 특정 시각적 속성 (미학)에 매핑하는 방법입니다 .

이것은 이론적으로는 조금 들리지만, 이미 본 특정 미학 맵핑과 geom_line 내에서 사용할 수있는 다른 맵핑을 검토합시다.

geom_line 미학 맵핑 목록 검토

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

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

위의 목록에서, 우리는 이미 본 것 xycolor, 그리고 linetype미적 매핑.

x그리고 y우리의 처음에 사용 무엇 ggplot + geom_line()X 축 및 Y 축 값을 변수 연령 및 둘레를 매핑 함수 호출. 그런 다음, 우리가 사용하는 실험 color과 linetype다른 색깔의 선 또는 선 종류의 나무 변수를 매핑 할 수 있습니다.

그 외에도 자주 사용되는 3 가지 주요 미적 매핑이 geom_line있습니다.

group매핑은 우리가 다른 그룹에 변수를 매핑 할 수 있습니다. 내 geom_line, 그 매핑을 다른 라인에 변수를 의미한다. 의 다운 껍질을 벗겼다 버전이라고 생각 color하고 linetype당신이 이미 본 미적 매핑. color미학은 각 트리를 다른 색으로 다른 선으로 매핑 했지만 미학은 각 트리를 다른 선 group으로 매핑하지만 색으로 구분하지 않습니다. 한 번 보자:

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

센터

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

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

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

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

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

센터

여기서 Tree변수를 alpha미적으로 매핑 하여 선의 투명도를 제어합니다. 보시다시피 특정 선은 다른 선보다 투명합니다. 이 경우 투명도는 그래프를 이해하지 못하기 때문에이 데이터 집합을 설명하기 위해이 정보를 사용하지 않을 것입니다.

에서 size미학적 매핑 변경ggplot + geom_line

센터

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

Orange 데이터 세트 스 니펫

ggplot의 미적인 매핑 대 매개 변수

이전 color에는 geom_line 을 사용 하여 두 가지 방식으로 사용할 수 있음을 알았습니다. 먼저, 매핑의 color = 'red' 범위 를 지정하여 라인의 색상을 빨간색으로 설정할 수있었습니다 aes(). 그런 다음 매핑의 내부 를 지정 하여 변수 를 색상에 매핑 할 수있었습니다 . 이 기능은 방금 배운 다른 모든 미학과 어떻게 작동합니까?Treecolor = Tree aes()

근본적으로, 그들은 모두 색깔과 동일하게 작동합니다! 그래프 작성에있어 아름다운 점입니다 ggplot. 구문을 이해하면 기능을 확장하는 것이 매우 쉽습니다.

여러분이 보았던 각각의 미학 맵핑은 매개 변수 , 즉 aes()미적 맵핑 외부에 정의 된 고정 값 으로 사용될 수도 있습니다 . color = 'red'이전에 줄을 빨강으로 설정하면 색상을 사용하여이 작업을 수행하는 방법을 보았습니다 . 이제 같은 방법으로 선 종류로 이것을 수행하는 방법의 예를 살펴 보겠습니다.

센터

값 것을 검토하기 위해 linetypesize그리고 alpha바로 실행, 동의 ?linetype?size또는 ?alpha콘솔 창에서!

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

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

미적 매핑을 포함하려고 노력하는 외부 사용자의 aes()전화

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

ggplot geom_line 오류 메시지
당신이 찾을 수없는 개체에 대한이 오류를 볼 때마다, 당신은 확인 있는지 확인하고 당신이 당신의 미적 매핑을 포함하고 있는지 확인 내부aes() 전화!

매개 변수를 지정하려고 내에서 당신의 aes()전화

또는 매핑 color = 'red'내 에서 특정 매개 변수 값 (예 aes()🙂 을 지정하려고 하면 덜 중요한 문제가 발생합니다.

센터

이 경우 ggplot실제로는 선 그래프 (성공!)가 생성되지만 의도 한 결과가 없습니다. 그래프는 우리가 이전에 가지고있는 것처럼 5 개의 개별 라인이 아닌 한 라인에 5 개의 모든 트리에 대한 값을 넣기 때문에 이상하게 보입니다. 색상을 빨간색으로 바꿨지 만 단순히 ‘빨간색’이라고 말하는 전설도 포함되었습니다. 이 같은 문제로 실행하면 한 번 확인 당신이 그래프의 매개 변수를 포함하고 있는지 확인하기 위해 외부에서 당신의 aes()전화!

이제 R을 사용하여 선 그래프를 그리는 데 필요한 ggplot및 을 사용하는 방법에 대한 확실한 이해가 있어야합니다 geom_line! 이해를 확고히하기 위해 배운 것을 실험 해보십시오. 연습으로, 다른 데이터 세트와 배운 미학 맵핑 중 적어도 하나를 사용하여 자신의 선 그래프를 만들어보십시오. 코멘트에 귀하의 그래프를 남기시거나 mt.toth@gmail.com으로 이메일을 보내주십시오. – 귀하가 생산 한 것을 살펴보고 싶습니다!

 

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