R의 막대 차트 및 히스토그램(예제 포함)
막대 차트는 X축에 범주형 변수를 표시하는 좋은 방법입니다. 이 유형의 그래프는 y축의 두 가지 측면을 나타냅니다.
- 첫 번째는 그룹 간 발생 횟수를 계산합니다.
- 두 번째는 y축에 변수의 요약 통계(최소, 최대, 평균 등)를 표시합니다.
다음과 같은 변수를 갖는 mtcars 데이터 세트를 사용합니다.
- cyl: 자동차의 실린더 번호입니다. 숫자변수
- am: 변속기 유형. 자동은 0, 수동은 1입니다. 숫자 변수
- mpg: 갤런당 마일. 숫자변수
막대 차트를 만드는 방법
그래프를 생성하려면 R, 게시 준비가 완료된 그래프를 생성하는 라이브러리 ggplot을 사용할 수 있습니다. 이 라이브러리의 기본 구문은 다음과 같습니다.
ggplot(data, mapping = aes()) + geometric object arguments: data: dataset used to plot the graph mapping: Control the x and y-axis geometric object: The type of plot you want to show. The most common objects are: - Point: `geom_point()` - Bar: `geom_bar()` - Line: `geom_line()` - Histogram: `geom_histogram()`
이 튜토리얼에서는 막대 차트를 생성하는 기하학적 개체 geom_bar()에 관심이 있습니다.
막대 차트: 개수
첫 번째 그래프는 geom_bar()를 사용하여 원통의 빈도를 보여줍니다. 아래 코드는 가장 기본적인 구문입니다.
library(ggplot2) # Most basic bar chart ggplot(mtcars, aes(x = factor(cyl))) + geom_bar()
코드 설명
- mtcars 데이터 세트를 ggplot에 전달합니다.
- aes() 인수 내부에 x축을 요인 변수(cyl)로 추가합니다.
- + 기호는 R이 코드를 계속 읽기를 원한다는 것을 의미합니다. 코드를 쪼개서 더 읽기 쉽게 만듭니다.
- 기하학적 객체에는 geom_bar()를 사용합니다.
출력:
주의 사항: 변수를 요인으로 변환해야 합니다. 그렇지 않으면 R에서 변수를 숫자로 처리합니다. 아래 예를 참조하세요.
그래프 사용자 정의
그래프를 사용자 정의하기 위해 XNUMX개의 인수를 전달할 수 있습니다.
- `stat`: Control the type of formatting. By default, `bin` to plot a count in the y-axis. For continuous value, pass `stat = "identity"` - `alpha`: Control density of the color - `fill`: Change the color of the bar - `size`: Control the size the bar
막대 색상 변경
막대의 색상을 변경할 수 있습니다. 막대의 색상은 모두 유사합니다.
# Change the color of the bars ggplot(mtcars, aes(x = factor(cyl))) + geom_bar(fill = "coral") + theme_classic()
코드 설명
- 막대의 색상은 기하학적 객체 내부의 aes() 매핑에 의해 제어됩니다(즉, ggplot()가 아님). 채우기 인수를 사용하여 색상을 변경할 수 있습니다. 여기서는 코랄 컬러를 선택해 주세요.
출력:
이 코드를 사용할 수 있습니다.
grDevices::colors()
R에서 사용할 수 있는 모든 색상을 보려면 약 650가지 색상이 있습니다.
강도 변경
막대 색상의 강도를 높이거나 낮출 수 있습니다.
# Change intensity ggplot(mtcars, aes(factor(cyl))) + geom_bar(fill = "coral", alpha = 0.5) + theme_classic()
코드 설명
- 막대의 강도를 높이거나 낮추려면 알파 값을 변경할 수 있습니다. 알파가 크면 강도가 증가하고 알파가 낮으면 강도가 감소합니다. 알파의 범위는 0에서 1까지입니다. 1이면 색상이 팔레트와 동일합니다. 0이면 색상은 흰색입니다. 알파 = 0.1을 선택합니다.
출력:
그룹별 색상
막대의 색상을 변경할 수 있습니다. 즉, 각 그룹마다 서로 다른 색상이 적용됩니다. 예를 들어 cyl 변수에는 세 가지 수준이 있으므로 세 가지 색상으로 막대 차트를 그릴 수 있습니다.
# Color by group ggplot(mtcars, aes(factor(cyl), fill = factor(cyl))) + geom_bar()
코드 설명
- aes() 내부의 fill 인수를 사용하면 막대의 색상을 변경할 수 있습니다. fill = x축 변수를 설정하여 색상을 변경합니다. 귀하의 예에서 x축 변수는 cyl입니다. 채우기 = 인자(cyl)
출력:
막대에 그룹 추가
다른 요인 수준에 따라 y축을 더 분할할 수 있습니다. 예를 들어, 실린더 유형에 따라 자동 및 수동 변속기의 수를 셀 수 있습니다.
다음과 같이 진행하게 됩니다:
- 1단계: mtcars 데이터세트로 데이터 프레임 만들기
- 2단계: 자동 변속기의 경우 am 변수에 auto, 수동 변속기의 경우 man으로 레이블을 지정합니다. ggplot() 함수에서 factor()를 사용할 필요가 없도록 am과 cyl을 인수로 변환합니다.
- 3단계: 실린더별 전송 횟수를 계산하기 위해 막대형 차트를 그립니다.
library(dplyr) # Step 1 data <- mtcars % > % #Step 2 mutate(am = factor(am, labels = c("auto", "man")), cyl = factor(cyl))
데이터 세트가 준비되었으므로 그래프를 그릴 수 있습니다.
# 3 단계
ggplot(data, aes(x = cyl, fill = am)) + geom_bar() + theme_classic()
코드 설명
- ggpplot()에는 데이터 세트 데이터와 aes()가 포함되어 있습니다.
- aes()에는 x축 변수와 막대를 채우는 데 필요한 변수(예: am)가 포함됩니다.
- geom_bar(): 막대 차트 생성
출력:
매핑은 막대를 각 수준마다 하나씩 두 가지 색상으로 채웁니다. 데이터 세트에서 다른 요인 변수를 선택하여 그룹을 변경하는 것은 쉽습니다.
백분율로 표시되는 막대 차트
원시 개수 대신 백분율로 막대를 시각화할 수 있습니다.
# 백분율로 나타낸 막대 차트
ggplot(data, aes(x = cyl, fill = am)) + geom_bar(position = "fill") + theme_classic()
코드 설명
- geom_bar() 인수에 position = "fill"을 사용하여 y축에 백분율이 있는 그래픽을 만듭니다.
출력:
나란히 바
그룹변수와 함께 막대그래프를 나란히 그리는 것은 쉽습니다.
# Bar chart side by side ggplot(data, aes(x = cyl, fill = am)) + geom_bar(position = position_dodge()) + theme_classic()
코드 설명
- position=position_dodge(): 막대 정렬 방법을 명시적으로 알려줍니다.
출력:
히스토그램
막대 차트 튜토리얼의 두 번째 부분에서는 y축의 값으로 변수 그룹을 나타낼 수 있습니다.
귀하의 목표는 각 실린더 유형의 갤런당 평균 마일을 사용하여 그래프를 만드는 것입니다. 유익한 그래프를 그리려면 다음 단계를 따르세요.
- 1단계: 실린더별 갤런당 평균 마일을 사용하여 새 변수 만들기
- 2단계: 기본 히스토그램 만들기
- 3단계: 방향 변경
- 4단계: 색상 변경
- 5단계: 크기 변경
- 6단계: 그래프에 라벨 추가
단계 1) 새 변수 만들기
간단히 자동차의 실린더 수로 갤런당 평균 마일을 반환하는 data_histogram이라는 데이터 프레임을 만듭니다. 이 새 변수를 평균_mpg라고 부르고 평균을 소수점 이하 두 자리로 반올림합니다.
# 1 단계
data_histogram <- mtcars % > % mutate(cyl = factor(cyl)) % > % group_by(cyl) % > % summarize(mean_mpg = round(mean(mpg), 2))
단계 2) 기본 히스토그램 만들기
히스토그램을 그릴 수 있습니다. 고객에게 전달할 준비가 되어 있지는 않지만 추세에 대한 직관을 제공합니다.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) + geom_bar(stat = "identity")
코드 설명
- aes()에는 이제 두 개의 변수가 있습니다. cyl 변수는 x축을 나타내고, 평균_mpg는 y축을 나타냅니다.
- y축의 변수를 숫자 값으로 참조하려면 stat=”identity” 인수를 전달해야 합니다. geom_bar는 stat=”bin”을 기본값으로 사용합니다.
출력:
단계 3) 방향 변경
그래프의 방향을 세로에서 가로로 변경합니다.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) + geom_bar(stat = "identity") + coord_flip()
코드 설명
- coord_flip()을 사용하여 그래프의 방향을 제어할 수 있습니다.
출력:
단계 4) 색상 변경
x축 변수의 요인 수준에 따라 막대의 색상을 구분할 수 있습니다.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) + geom_bar(stat = "identity") + coord_flip() + theme_classic()
코드 설명
- fill= cyl 매핑을 사용하여 그룹별로 그래프를 그릴 수 있습니다. R은 cyl 변수의 수준에 따라 색상을 자동으로 처리합니다.
출력:
단계 5) 크기 변경
그래프를 더 보기 좋게 만들려면 막대의 너비를 줄이세요.
graph <- ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) + geom_bar(stat = "identity", width = 0.5) + coord_flip() + theme_classic()
코드 설명
- geom_bar() 내부의 너비 인수는 막대의 크기를 제어합니다. 값이 클수록 너비가 늘어납니다.
- 그래프를 변수 그래프에 저장합니다. 다음 단계에서는 변수 그래프의 코드가 변경되지 않기 때문에 그렇게 합니다. 코드의 가독성이 향상됩니다.
출력:
단계 6) 그래프에 라벨 추가
마지막 단계는 레이블에 변수mean_mpg의 값을 추가하는 것으로 구성됩니다.
graph + geom_text(aes(label = mean_mpg), hjust = 1.5, color = "white", size = 3) + theme_classic()
코드 설명
- geom_text() 함수는 텍스트의 미학을 제어하는 데 유용합니다.
- label=: 막대 내부에 레이블을 추가합니다.
- 평균_mpg: 라벨에 변수 평균_mpg를 사용합니다.
- hjust는 레이블의 위치를 제어합니다. 1에 가까운 값은 막대 상단에 레이블을 표시하고, 값이 높을수록 레이블은 하단에 표시됩니다. 그래프 방향이 수직인 경우 hjust를 vjust로 변경합니다.
- color=”white”: 텍스트 색상을 변경합니다. 여기서는 흰색을 사용합니다.
- size=3: 텍스트의 크기를 설정합니다.
출력:
요약
막대 차트는 x축이 범주형 변수일 때 유용합니다. y축은 카운트 또는 요약 통계일 수 있습니다. 아래 표는 ggplot2로 막대 차트를 제어하는 방법을 요약한 것입니다.
목표 | 암호 |
---|---|
카운트 |
ggplot(df, eas(x= factor(x1)) + geom_bar() |
다양한 채우기 색상으로 계산 |
ggplot(df, eas(x= factor(x1), fill = factor(x1))) + geom_bar() |
그룹으로 계산, 누적 |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
그룹별로 나란히 계산 |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar() |
그룹으로 계산, % 단위로 누적됨 |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
마케팅은: |
ggplot(df, eas(x= factor(x1)+ y = x2) + geom_bar(stat="identity") |