Ggplot2에서 여러 줄을 그리는 방법(예제 포함)
다음 기본 구문을 사용하여 ggplot2에서 여러 줄을 그릴 수 있습니다.
ggplot(df, aes(x=x_var, y=y_var)) +
geom_line(aes(color=group_var)) +
scale_color_manual(name=' legend_title ', labels=c(' lab1 ', ' lab2 ', ' lab3 '),
values=c(' color1 ', ' color2 ', ' color3 '))
이 특정 구문은 ggplot2에 세 줄의 플롯을 생성합니다.
이 구문은 데이터 프레임이 긴 형식 이라고 가정합니다.
다음 예는 실제로 ggplot2에서 여러 줄을 그리는 방법을 보여줍니다.
예: ggplot2에 여러 줄 그리기
5일 동안 3개의 서로 다른 매장에서 발생한 판매량에 대한 정보가 포함된 다음과 같은 데이터 프레임이 R에 있다고 가정합니다.
#create data frame
df <- data. frame (day=c(1, 2, 3, 4, 5),
storeA=c(5, 6, 8, 8, 9),
storeB=c(3, 3, 4, 5, 7),
storeC=c(8, 10, 12, 12, 17))
#view data frame
df
day storeA storeB storeC
1 1 5 3 8
2 2 6 3 10
3 3 8 4 12
4 4 8 5 12
5 5 9 7 17
이 데이터 프레임은 현재 와이드 형식입니다.
그러나 Tidyr 패키지의 ivot_longer() 함수를 사용하여 데이터를 긴 형식으로 빠르게 변환할 수 있습니다.
library (tidyr)
#convert data from wide to long format
df <- df %>% pivot_longer(cols=c(' storeA ', ' storeB ', ' storeC '),
names_to=' store ',
values_to=' sales ')
#view updated data frame
df
# A tibble: 15 x 3
day store sales
1 1 blindA 5
2 1 storeB 3
3 1 blindC 8
4 2 blindA 6
5 2 storeB 3
6 2 storeC 10
7 3 storeA 8
8 3 storeB 4
9 3 storeC 12
10 4 storeA 8
11 4 storeB 5
12 4 storeC 12
13 5 storeA 9
14 5 storeB 7
15 5 storeC 17
관련 항목: R의ivot_longer() 소개
이제 데이터 프레임이 긴 형식이므로 ggplot2와 함께 다음 구문을 사용하여 각 매장의 매출을 표시할 수 있습니다.
library (ggplot2)
#plot sales by store
ggplot(df, aes(x=day, y=sales)) +
geom_line(aes(color=store)) +
scale_color_manual(name=' Store ', labels=c(' A ', ' B ', ' C '),
values=c(' red ', ' purple ', ' steelblue '))
개별 행에는 매일 각 매장의 매출이 표시됩니다.
선을 더 쉽게 해석할 수 있도록 scale_color_manual() 함수를 사용하여 플롯 오른쪽에 사용자 정의 범례를 만들었습니다.
원하는 방식으로 정확히 나타나는 범례를 만들려면 이 함수에 대한 인수를 자유롭게 수정하세요.
추가 리소스
다음 튜토리얼에서는 ggplot2에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
ggplot2에서 평균과 표준편차를 그리는 방법
ggplot2를 사용하여 플롯에 수평선을 추가하는 방법
ggplot2에서 추세선을 그리는 방법