R에서 다양한 색상으로 히스토그램을 만드는 방법


종종 R에서 여러 가지 색상으로 히스토그램을 만들고 싶을 수도 있습니다.

다음 예에서는 기본 R 및 ggplot2 에서 이를 수행하는 방법을 보여줍니다.

예 1: 기본 R에 서로 다른 색상이 있는 히스토그램

다음 코드는 기본 R에서 단일 색상으로 히스토그램을 생성하는 방법을 보여줍니다.

 #create data frame
df <- data. frame (x=c(12, 14, 14, 15, 15, 17, 19, 22, 23, 23, 24))

#create histogram
hist(df$x)

기본적으로 히스토그램의 모든 막대 색상은 동일합니다.

그러나 다음 코드를 사용하여 세 가지 다른 색상으로 히스토그램을 만들 수 있습니다.

 #create data frame
df <- data. frame (x=c(12, 14, 14, 15, 15, 17, 19, 22, 23, 23, 24))

#define histogram break points
hist_breaks <- hist(df$x)$breaks

#define colors to use in histogram based on break points
color_list <- rep(' red ', length(hist_breaks))
color_list[hist_breaks < 20 ] <- ' blue '
color_list[hist_breaks < 16 ] <- ' purple '

#create histogram with custom colors
hist(df$x, col=color_list)

R의 다양한 색상을 사용한 히스토그램

세 가지 색상을 생성하는 논리는 다음과 같습니다.

  • 먼저 각 막대가 빨간색 으로 지정되었습니다.
  • 그런 다음 중단점이 20 미만인 모든 막대를 파란색 으로 변경했습니다.
  • 그런 다음 중단점이 16 미만인 모든 막대를 보라색 으로 변경했습니다.

최종 결과는 3색 히스토그램입니다.

예 2: ggplot2에서 다양한 색상을 사용한 히스토그램

R에 다음과 같은 데이터 프레임이 있다고 가정합니다.

 #create data frame
df <- data. frame (x=c(12, 14, 14, 15, 15, 17, 19, 22, 23, 23, 24))

#view data frame
df

    x
1 12
2 14
3 14
4 15
5 15
6 17
7 19
8 22
9 23
10 23
11 24

이 데이터 프레임에 대해 다양한 색상의 히스토그램을 만들려면 먼저 중첩된 if else 문을 사용하여 값에 대한 그룹화 변수를 만들어야 합니다.

 #create grouping variable
df$group = ifelse(df$x < 16 , ' C ', ifelse(df$x < 20 , ' B ', ' A '))

#view updated data frame
df

    x group
1 12 C
2 14C
3 14C
4 15C
5 15C
6 17 B
7 19 B
8 22 A
9 23 A
10 23 A
11 24 A

이제 ggplot2에서 히스토그램을 만들고 그룹 변수를 사용하여 플롯의 색상을 설정할 수 있습니다.

 #create histogram with custom colors
ggplot(df, aes(x, fill=group)) +
  geom_histogram(bins= 6 , color=' black ') +
   scale_fill_manual(values = c(' A ' = ' red ',
                                ' B ' = ' blue ',
                                ' C ' = ' purple '))

최종 결과는 3색 히스토그램입니다.

참고 : scale_fill_manual() 에 대한 전체 문서는 여기에서 찾을 수 있습니다.

추가 리소스

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

R에서 상대 빈도 히스토그램을 만드는 방법
R의 히스토그램에 정규 곡선을 오버레이하는 방법
R에서 히스토그램 나누기를 지정하는 방법

의견을 추가하다

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