이번 포스팅에서는
R에서 히스토그램(histogram)을 그리는 방법에 대해
이야기하고자 한다.
#ggplot2와 readxl이 없는 사람만 수행
install.packages("ggplot2")
install.packages("readxl")
#ggplot2와 readxl 불러오기
library(ggplot2)
library(readxl)
먼저 install.packges()를 통해 ggplot2와 readxl을 다운받아주고
library()를 통해 각 패키지를 불러와 준다.
ggplot2의 경우 R을 하시는 분들이라면 많이 들어보시고, 사용하시는
패키지이며, 정말 많은 분들이 소개하고 작성해 놓은 글들이 많다.
자신에게 맞은 스타일을 정리해 놓는 것이 포인트라고 생각한다.
#테마를 지정(많은 스타일이 있으므로 본인에게 맞는 설정을 하자)
theme_set(theme_bw() +
theme(legend.position = "top")) #legend.position은 범례가 있을 경우 작성
ggplot2의 강점을 살려 테마를 지정하고, 수정 및 변경을 할 수 있다.
테마의 종류는 여러개가 있으므로
자신에게 필요한, 맞은 테마를 지정해서 설정해주면 된다.
lgend.position의 경우 범례가 있을 경우에만 지정해주면 되고,
범례가 없을 경우에는 그냥 작성해주면 표시되지 않는다.
#read_xlsx를 통해 엑셀파일을 불러온다.
#sheet = 는 몇번째 sheet에 있는 정보를 불러올 것인지 지정하는 것으로
#시트가 1개만 있다면 작성하지 않아도 됨
w = read_xlsx(path = "c:/korea_total.xlsx", sheet = 4)
#엑셀 파일을 불러온 변수 w에서 x축에 pc라는 변수를 지정
a <- ggplot(w, aes(x = pc))
필자는 c:/ 경로를 통해 엑셀파일을 불러왔지만,
이 글을 보시는 분들은 파일이 있는 경로로 지정해주면 된다.
개인적으로 c:/ 에 놓는 것이 편해서 자주 이용하는 편이다.
a + geom_histogram(aes(y = stat(density)),
colour = "black", fill = "#EA813D", bins = 50) +
geom_density(alpha = 0.3, size = 0.8, fill = "#FFE641") + xlab("Altitude (m)") +
theme(axis.title.x = element_text(face = "plain",
size = 15,
hjust = 0.5,
color = "black"),
axis.title.y = element_text(face = "plain",
size = 15,
hjust = 0.5,
color = "black"),
axis.text.y = element_text(size = 12,
color = "black",
angle = 0),
axis.text.x = element_text(size = 12,
color = "black",
angle = 0))
gglot2를 통해 히스토그램 그래프를 그리는 방법의 마지막 단계이다.
복잡해보이지만, 하나하나 살펴보자
이부분은 조금씩 잘라서 보면...
a + geom_histogram(aes(y = stat(density)),
colour = "black", fill = "#EA813D", bins = 50) +
#colour는 히스토그램 막대의 외각선 색상
#fill은 막대 안의 색상을 어떤 색으로 할 것인지 지정
#bins = 는 히스토그램의 개수이며 binwidth = 에 의해 재설정 된다고 함
외각선이 검은색이고, fill을 통해 채운 색상은
주황색인 것을 확인할 수 있다.
색상은 google에 #색상유니코드 라고 검색하면
다양한 색상이 많이 나오니 참고하면 좋을 듯 하다.
#밀도곡선 그리기
geom_density(alpha = 0.2, size = 0.1, fill = "#FFE641") + xlab("Altitude (m)") +
alpha = 는 밀도곡선 안쪽의 색상의 강도 조절
size = 는 밀도곡선의 선 굵기
를 변경 할 수 있다.
alpha와 size의 크기를 변경했을 경우 변화하는 모습을 비교하기 위해 2개의 그래프를
그려보았다.
#x축과 y축에 대해 세부적인 설정을 하는 방법
theme(axis.title.x = element_text(face = "plain",
size = 15,
hjust = 0.5,
color = "black"),
axis.title.y = element_text(face = "plain",
size = 15,
hjust = 0.5,
color = "black"),
axis.text.y = element_text(size = 12,
color = "black",
angle = 0),
axis.text.x = element_text(size = 12,
color = "black",
angle = 0))
#face = 글씨체, 서체 지정
#size = 글씨 크기 조절
#hjust = 글씨 위치 변경(0.5가 중앙)
#color = 글씨 색상 지정
#angle = 글씨의 각도 지정
axis.title.x는 코드 그대로
x축 제목에 대한 세부수정을 하는 것이며,
axis.title.y는 y축 제목에 대한 세부수정을 하는 것이다.
axis.text.x는 x축 라벨에 대한 세부 사항을 수정할 수 있다.
필자가 작성한 그래프를 보면...
x축과 y축에 대한 글씨크기, 글씨체 등을 변경하기 전과 후의 모습을 비교해보기 위해
2개의 그래프를 작성해보았다.
위의 그림처럼 세부설정을 통해 자신이 원하는 사항에 대한
수정을 할 수 있다.
전체 코드는 다음과 같다.
install.packages("ggplot2")
library(ggplot2)
library(readxl)
theme_set(theme_bw() +
theme(legend.position = "top"))
w = read_xlsx(path = "c:/korea_total.xlsx", sheet = 4)
a <- ggplot(w, aes(x = pc))
a + geom_histogram(aes(y = stat(density)),
colour = "black", fill = "#EA813D", bins = 50) +
geom_density(alpha = 0.2, size = 0.1, fill = "#FFE641") + xlab("Altitude (m)") +
theme(axis.title.x = element_text(face = "plain",
size = 15,
hjust = 0.5,
color = "black"),
axis.title.y = element_text(face = "plain",
size = 15,
hjust = 0.5,
color = "black"),
axis.text.y = element_text(size = 12,
color = "black",
angle = 0),
axis.text.x = element_text(size = 12,
color = "black",
angle = 0))
오늘도 누군가에 도움이 되었길 바라며...
'공부 > R & Python' 카테고리의 다른 글
[R]ggplot2에서 그래프 해상도 높이는 방법(파일 형식 지정) (0) | 2022.08.23 |
---|---|
[R]r에서 행이름 지정(변경)하는 방법 (0) | 2021.01.11 |
[R]R에서 만든 data를 csv 파일로 저장하는 방법 (0) | 2020.12.29 |
[R]geom_bar, 막대그래프와 데이터 값 표시 (0) | 2020.12.28 |
[R]for 함수를 활용한 반복문 만들기 (0) | 2020.12.20 |