Ggplot2의 플롯에 테이블을 추가하는 방법(예제 2개)


독자가 플롯과 함께 원시 데이터를 시각화할 수 있도록 R의 ggplot2에서 생성된 플롯에 테이블을 추가하려는 경우가 종종 있습니다.

다행히 ggpmisc 패키지를 사용하면 플롯에 테이블을 쉽게 추가할 수 있습니다.

 install. packages (' ggpmisc ')
library (ggpmisc)

다음 예에서는 이 패키지를 사용하여 다음 데이터 프레임을 사용하여 막대 그래프 및 산점도에 테이블을 추가하는 방법을 보여줍니다.

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
                 points=c(13, 23, 24, 20, 19, 14, 29, 31))

#view data frame
df

  team position points
1 AG 13
2 AG 23
3 AF 24
4 AF 20
5 BG 19
6 BG 14
7 BF 29
8 BF 31

예 1: ggplot2의 Barplot에 테이블 추가

다음 코드를 사용하여 ggplot2에서 그룹화된 막대 그래프를 만들고 플롯의 오른쪽 하단에 테이블을 추가하여 데이터 프레임의 실제 값을 표시할 수 있습니다.

 library (ggplo2)
library (ggpmisc)

#create barplot with table
ggplot(df, aes(x=team, y=points, fill=position)) + 
    geom_bar(position=' dodge ', stat=' identity ') +
    annotate(geom = ' table ',
           x=4,
           y=0,
           label=list(df))

ggplot2 테이블

대규모 데이터 세트로 작업하고 각 개별 행을 표시하고 싶지 않은 경우 ggplot2에서 테이블을 생성하기 전에 table() 함수를 사용하여 데이터를 요약할 수 있습니다.

 library (ggplot2)
library (ggpmisc)

#summarize frequencies of team and points in table
my_table <- as. data . frame (table(df[, c(1, 3)]))

#create barplot with table
ggplot(df, aes(x=team, y=points, fill=position)) + 
    geom_bar(position=' dodge ', stat=' identity ') +
    annotate(geom = ' table ',
           x=4,
           y=0,
           label=list(my_table))

예 2: ggplot2의 산점도에 테이블 추가

다음 코드를 사용하여 ggplot2에서 산점도를 생성하고 플롯의 오른쪽 하단에 테이블을 추가하여 데이터 프레임의 실제 값을 표시할 수 있습니다.

 library (ggplo2)
library (ggpmisc)

#create scatterplot with table
ggplot(df, aes(x=team, y=points)) + 
    geom_point(aes(color=position)) +
    annotate(geom=' table ',
           x=4,
           y=0,
           label=list(df))

참고 : annotate() 함수에서 xy 값을 자유롭게 사용하여 원하는 정확한 위치에 배열을 배치할 수 있습니다.

추가 리소스

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

ggplot2 플롯에 텍스트를 추가하는 방법
ggplot2에서 제목 위치를 변경하는 방법
ggplot2 범례에서 항목 순서를 변경하는 방법

의견을 추가하다

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