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

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

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

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으로 이메일을 보내주십시오. – 귀하가 생산 한 것을 살펴보고 싶습니다!

 

In fact, in most cases, simplicity is key to making your audience understand your data. Whether it’s scatter plots, bar graphs, or line graphs (the subject of this post!), common graph types make things easy for your audience, which means you can more easily share your message.

Right now, we’re talking about line graphs. A line graph is a type of graph that displays information as a series of data points connected by straight line segments.

The price of Netflix stock (NFLX) displayed as a line graph

The price of Netflix stock (NFLX) displayed as a line graph

Line graph of average monthly temperatures for four major cities

Line graph of average monthly temperatures for four major cities
There are many different ways to use R to plot line graphs, but the one I prefer is the ggplot geom_line function.

Introduction to ggplot

Before we dig into creating line graphs with the ggplot geom_line function, I want to briefly touch on ggplot and why I think it’s the best choice for plotting graphs in R.

ggplot is a package for creating graphs in R, but it’s also a method of thinking about and decomposing complex graphs into logical subunits.

ggplot takes each component of a graph–axes, scales, colors, objects, etc–and allows you to build graphs up sequentially one component at a time. You can then modify each of those components in a way that’s both flexible and user-friendly. When components are unspecified, ggplot uses sensible defaults. This makes ggplot a powerful and flexible tool for creating all kinds of graphs in R. It’s the tool I use to create nearly every graph I make these days, and I think you should use it too!

Investigating our dataset

Throughout this post, we’ll be using the Orange dataset that’s built into R. This dataset contains information on the age and circumference of 5 different orange trees, letting us see how these trees grow over time. Let’s take a look at this dataset to see what it looks like:

A snippet of the Orange dataset
The dataset contains 3 columns: Tree, age, and cimcumference. There are 7 observations for each Tree, and there are 5 Trees, for a total of 35 observations in all.

Simple example of ggplot + geom_line()

center

Here we are starting with the simplest possible line graph using geom_line. For this simple graph, I chose to only graph the size of the first tree. I used dplyr to filter the dataset to only that first tree. If you’re not familiar with dplyr‘s filter function, it’s my preferred way of subsetting a dataset in R, and I recently wrote an in-depth guide to dplyr filterif you’d like to learn more!

Once I had filtered out the dataset I was interested in, I then used ggplot + geom_line() to create the graph. Let’s review this in more detail:

First, I call ggplot, which creates a new ggplot graph. It’s essentially a blank canvas on which we’ll add our data and graphics. In this case, I passed tree_1 to ggplot, indicating that we’ll be using the tree_1 data for this particular ggplot graph.

Next, I added my geom_line call to the base ggplot graph in order to create this line. In ggplot, you use the + symbol to add new layers to an existing graph. In this second layer, I told ggplot to use age as the x-axis variable and circumference as the y-axis variable.

And that’s it, we have our line graph!

Changing line color in ggplot + geom_line

Expanding on this example, let’s now experiment a bit with colors.

center

You’ll note that this geom_line call is identical to the one before, except that we’ve added the modifier color = 'red' to to end of the line. Experiment a bit with different colors to see how this works on your machine. You can use most color names you can think of, or you can use specific hex colors codes to get more granular.

Now, let’s try something a little different. Compare the ggplot code below to the code we just executed above. There are 3 differences. See if you can find them and guess what will happen, then scroll down to take a look at the result.

center

This line graph is quite different from the one we produced above, but we only made a few minor modifications to the code! Did you catch the 3 changes? They were:

  1. The dataset changed from tree_1 (our filtered dataset) to the complete Orange dataset
  2. Instead of specifying color = 'red', we specified color = Tree
  3. We moved the color parameter inside of the aes() parentheses

Let’s review each of these changes:

Moving from tree_1 to Orange

This change is relatively straightforward. Instead of only graphing the data for a single tree, we wanted to graph the data for all 5 trees. We accomplish this by changing our input dataset in the ggplot() call.

Specifying color = Tree and moving it within the aes() parentheses

I’m combining these because these two changes work together.

Before, we told ggplot to change the color of the line to red by adding color = 'red' to our geom_line() call.

What we’re doing here is a bit more complex. Instead of specifying a single color for our line, we’re telling ggplot to map the data in the Tree column to the color aesthetic.

Effectively, we’re telling ggplot to use a different color for each tree in our data! This mapping also lets ggplot know that it also needs to create a legend to identify the trees, and it places it there automatically!

Changing linetype in ggplot + geom_line

Let’s look at a related example. This time, instead of changing the color of the line graph, we will change the linetype:

center

This ggplot + geom_line() call is identical to the one we just reviewed, except we’ve substituted linetype for color. The graph produced is quite similar, but it uses different linetypes instead of different colors in the graph. You might consider using something like this when printing in black and white, for example.

A deeper review of aes() (aesthetic) mappings in ggplot

We just saw how we can create graphs in ggplot that map the Tree variable to color or linetype in a line graph. ggplot refers to these mappings as aesthetic mappings, and they encompass everything you see within the aes() in ggplot.

Aesthetic mappings are a way of mapping variables in your data to particular visual properties (aesthetics) of a graph.

This might all sound a bit theoretical, so let’s review the specific aesthetic mappings you’ve already seen as well as the other mappings available within geom_line.

Reviewing the list of geom_line aesthetic mappings

The main aesthetic mappings for ggplot + geom_line() include:

  • x: Map a variable to a position on the x-axis
  • y: Map a variable to a position on the y-axis
  • color: Map a variable to a line color
  • linetype: Map a variable to a linetype
  • group: Map a variable to a group (each group on a separate line)
  • size: Map a variable to a line size
  • alpha: Map a variable to a line transparency

From the list above, we’ve already seen the xycolor, and linetype aesthetic mappings.

x and y are what we used in our first ggplot + geom_line() function call to map the variables age and circumference to x-axis and y-axis values. Then, we experimented with using color and linetype to map the Tree variable to different colored lines or linetypes.

In addition to those, there are 3 other main aesthetic mappings often used with geom_line.

The group mapping allows us to map a variable to different groups. Within geom_line, that means mapping a variable to different lines. Think of it as a pared down version of the color and linetype aesthetic mappings you already saw. While the color aesthetic mapped each Tree to a different line with a different color, the group aesthetic maps each Tree to a different line, but does not differentiate the lines by color or anything else. Let’s take a look:

Changing the group aesthetic mapping in ggplot + geom_line

center

You’ll note that the 5 lines are separated as before, but the lines are all black and there is no legend differentiating them. Depending on the data you’re working with, this may or may not be appropriate. It’s up to you as the person familiar with the data to determine how best to represent it in graph form!

In our Orange tree dataset, if you’re interested in investigating how specific orange trees grew over time, you’d want to use the color or linetype aesthetics to make sure you can track the progress for specific trees. If, instead, you’re interested in only how orange trees in general grow, then using the group aesthetic is appropriate, simplifying your graph and discarding unnecessary detail.

ggplot is both flexible and powerful, but it’s up to you to design a graph that communicates what you want to show. Just because you can do something doesn’t mean you should. You should always think about what message you’re trying to convey with a graph, then design from those principles.

Keep this in mind as we review the next two aesthetics. While these aesthetics absolutely have a place in data visualization, in the case of the particular dataset we’re working with, they don’t make very much sense. But this is a guide to using geom_line in ggplot, not graphing the growth of Orange trees, so I’m still going to cover them for the sake of completeness!

Changing transparency in ggplot + geom_line with the alpha aesthetic

center

Here we map the Tree variable to the alpha aesthetic, which controls the transparency of the line. As you can see, certain lines are more transparent than others. In this case, transparency does not add to our understanding of the graph, so I would not use this to illustrate this dataset.

Changing the size aesthetic mapping in ggplot + geom_line

center

Finally, we turn to the size aesthetic, which controls the size of lines. Again, I would say this is not does not add to our understanding of our data in this context. That said, it does slightly resemble Charles Joseph Minard’s famous graph of the death tolls of Napoleon’s disastrous 1812 Russia Campaign, so that’s kind of cool:

A snippet of the Orange dataset

Aesthetic mappings vs. parameters in ggplot

Before, we saw that we are able to use color in two different ways with geom_line. First, we were able to set the color of a line to red by specifying color = 'red' outside of our aes() mappings. Then, we were able to map the variable Tree to color by specifying color = Tree inside of our aes() mappings. How does this work with all of the other aesthetics you just learned about?

Essentially, they all work the same as color! That’s the beautiful thing about graphing in ggplot–once you understand the syntax, it’s very easy to expand your capabilities.

Each of the aesthetic mappings you’ve seen can also be used as a parameter, that is, a fixed value defined outside of the aes() aesthetic mappings. You saw how to do this with color when we set the line to red with color = 'red' before. Now let’s look at an example of how to do this with linetype in the same manner:

center

To review what values linetypesize, and alpha accept, just run ?linetype?size, or ?alpha from your console window!

Common errors with aesthetic mappings and parameters in ggplot

When I was getting started with R and ggplot, the distinction between aesthetic mappings (the values included inside your aes()), and parameters (the ones outside your aes() was the concept that tripped me up the most. You’ll learn how to deal with these issues over time, but I can help you speed along this process with a few common errors that you can keep an eye out for.

Trying to include aesthetic mappings outside your aes() call

If you’re trying to map the Tree variable to linetype, you should include linetype = tree within the aes() of your geom_line call. What happens if you accidentally include it outside, and instead run ggplot(Orange) + geom_line(aes(x = age, y = circumference), linetype = Tree)? You’ll get an error message that looks like this:

ggplot geom_line error message
Whenever you see this error about object not found, make sure you check and make sure you’re including your aesthetic mappings inside the aes() call!

Trying to specify parameters inside your aes() call

Alternatively, if we try to specify a specific parameter value (for example, color = 'red') inside of the aes() mapping, we get a less intutive issue:

center

In this case, ggplot actually does produce a line graph (success!), but it doesn’t have the result we intended. The graph it produces looks odd, because it is putting the values for all 5 trees on a single line, rather than on 5 separate lines like we had before. It did change the color to red, but it also included a legend that simply says ‘red’. When you run into issues like this, double check to make sure you’re including the parameters of your graph outside your aes() call!

You should now have a solid understanding of how to use R to plot line graphs using ggplot and geom_line! Experiment with the things you’ve learned to solidify your understanding. As an exercise, try producing a line graph of your own using a different dataset and at least one of the aesthetic mappings you learned about. Leave your graph in the comments or email it to me at mt.toth@gmail.com — I’d love to take a look at what you produce!

소스: ggplot geom_line을 사용하여 R의 선 그래프를 그리기위한 자세한 가이드