Ggplot2의 플롯과 범례에 수평선을 추가하는 방법


다음 구문을 사용하여 ggplot2의 플롯에 수평선을 추가한 다음 범례의 요소로 수평선을 추가할 수도 있습니다.

 library (ggplot2)

#create data frame with values to plot
df <- data. frame (team=rep(c(' A ', ' B '), each= 5 ),
                 assists=c(1, 3, 3, 4, 5, 7, 7, 9, 9, 10),
                 points=c(4, 8, 12, 10, 18, 25, 20, 28, 33, 35))

#create data frame that contains horizontal line location
cutoff <- data. frame (yintercept= 22 , Lines=' Cutoff ')

#create scatterplot with horizontal line and include horizontal line in legend
ggplot(df, aes(x=assists, y=points)) + 
  geom_point(aes(color=team)) +
  geom_hline(aes(yintercept=yintercept, linetype=Lines), cutoff)

수평선의 y 절편 값만 포함하는 별도의 데이터 프레임을 생성하면 수평선을 플롯에 추가하고 자동으로 범례에 추가할 수 있습니다.

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

예: ggplot2의 플롯과 범례에 수평선 추가

서로 다른 팀의 농구 선수에 대한 정보를 포함하는 다음과 같은 데이터 프레임이 R에 있다고 가정합니다.

 #create data frame
df <- data. frame (team=rep(c(' A ', ' B '), each= 5 ),
                 assists=c(1, 3, 3, 4, 5, 7, 7, 9, 9, 10),
                 points=c(4, 8, 12, 10, 18, 25, 20, 28, 33, 35))

#view data frame
df

   team assists points
1 To 1 4
2 to 3 8
3 to 3 12
4 to 4 10
5 to 5 18
6 B 7 25
7 B 7 20
8 B 9 28
9 B 9 33
10 B 10 35

ggplot2에서 산점도를 생성하여 팀을 기반으로 각 플레이어의 포인트 및 어시스트 값을 시각화한 다음 y = 22에 수평선을 추가하여 좋은 점과 나쁜 점의 차이에 대한 “임계값”을 정의한다고 가정해 보겠습니다. 플레이어.

이를 위해 다음 구문을 사용할 수 있습니다.

 library (ggplot2)

#create data frame that contains horizontal line location
cutoff <- data. frame (yintercept= 22 , Lines=' Cutoff ')

#create scatterplot with horizontal line and include horizontal line in legend
ggplot(df, aes(x=assists, y=points)) + 
  geom_point(aes(color=team)) +
  geom_hline(aes(yintercept=yintercept, linetype=Lines), cutoff) 

ggplot2는 범례에 수평선을 추가합니다.

플롯 오른쪽의 범례에는 플롯의 어느 지점이 어느 팀에 속하는지를 나타내는 원이 포함되어 있으며, 컷오프 라인을 나타내기 위해 범례에 수평선도 추가되었습니다.

범례의 가로줄 캡션을 변경하려면 데이터 프레임 분할 열에 있는 텍스트를 편집하면 됩니다.

예를 들어, 다음 구문을 사용하여 수평선의 레이블을 “좋은 대 악한 임계값”으로 변경할 수 있습니다.

 library (ggplot2)

#create data frame that contains horizontal line location
cutoff <- data. frame (yintercept= 22 , Lines=' Cutoff of Good vs. Bad ')

#create scatterplot with horizontal line and include horizontal line in legend
ggplot(df, aes(x=assists, y=points)) + 
  geom_point(aes(color=team)) +
  geom_hline(aes(yintercept=yintercept, linetype=Lines), cutoff) 

범례의 수평선 레이블이 변경되었습니다.

추가 리소스

다음 튜토리얼에서는 ggplot2에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

ggplot2에서 범례 제목을 변경하는 방법
ggplot2에서 범례 크기를 변경하는 방법
ggplot2에서 범례 위치를 변경하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다