?lims :앞에 물음표를 붙여서, 해당 함수의 메뉴얼을 볼 수 있다.
getwd() : 현재 디렉토리 확인. (리눅스에 pwd)
setwd() : 작업 디렉토리 설정가능. \\ 또는 /를 사용.
setwd('c:\\Users\\R_study')
setwd('c:/Users/R_study')
-> Work Directory는 Rstudio를 종료하면 헤제된다.
install.packages('ggplots') : package install. 노란색 부분 원하는 패키지 입력.
Rstudio의 4사분면 방향에 보이는 Tools>Install Packages 메뉴에서도 가능
head(sah) : 5개열
tail(sah) : 아래서 5개열
colnames(sah) : 컬럼명
ggplots의 기본 구조
ggplot(data, aes(x= ,y= )) + geom_함수()+
스케일(scale) 함수 +
좌표(coord) 함수 +
분할(facet) 함수 +
테마(theme) 함수
+ 를 통해서 내용을 추가 할수 있는 Layer구조 형태이다.
a <- ggplot(data, aes(x,y )) + geom_함수()
a + coord_cartesian(xlim=c(0,100))
형대로 변수이용해서 확장 가능
예제)
setwd("C:/Users/SYP/R/in_manuscript")
load("sah.RData")
library(ggplot2)
head(sah)
#결과
sbp tobacco ldl adiposity famhist typea obesity alcohol age chd BMI.cat
1 160 12.00 5.73 23.11 Present 49 25.30 97.20 52 1 overweight
2 144 0.01 4.41 28.61 Absent 55 28.87 2.06 63 1 overweight
3 118 0.08 3.48 32.28 Present 52 29.14 3.81 46 0 overweight
4 170 7.50 6.41 38.03 Present 51 31.99 24.26 58 1 obese
5 134 13.60 3.50 27.78 Present 60 25.99 57.34 49 1 overweight
6 132 6.20 6.47 36.21 Present 62 30.77 14.14 45 0 obese
# 아래 3가지 형태 모두가능
ggplot(sah, aes(age, sbp)) + geom_point()
ggplot(data=sah, aes(x = age, y = sbp)) + geom_point()
ggplot(sah) + geom_point(aes(x = age, y = sbp))
data | ggplot(data) |
data=sah, sah 형태 모두가능
aes(x= ,y= ) | ggplot(data, aes(x= ,y= )) |
(a,b) 혹은 (x=a,y=b) 형태 모두가능.
아래와 같이 추가 정보 가능
color | 색상 지정 |
ggplot(sah, aes(age, sbp, color = chd)) + geom_point() | |
chape | 점의 모양 지정 |
ggplot(sah, aes(age, sbp, color = chd, shape =chd)) + geom_point() | |
size | 점의 크기 지정 |
ggplot(sah, aes(age, sbp, color = chd, size =chd)) + geom_point() | |
alpha | 투명도 지정 : 데이터 밀도를 시각화 할때 사용 |
ggplot(sah, aes(age, sbp, color = chd, alpha =chd)) + geom_point() | |
group | 데잍터를 그룹화 하여 여러 그래프 요소를 구별 : 보통 선 그래프에서 사용 |
ggplot(sah, aes( , , group = )) + geom_line() |
geom_함수() | ggplot(data, aes(x= ,y= )) + geom_함수() |
그래프 2개를 겹치는 geom_point() +geom_smooth() 같은 형태도 가능
geom_bar() | 막대 그래프 |
geom_col() | 막대 그래프 |
geom_line() | 선 그래프 |
geom_path() | 선 그래프 |
geom_point() | 산점도 |
geom_smooth() | 평활곡선 그래프 |
geom_boxplot() | 상자그림 |
geom_errorbar() | 오차막대 그래프 |
geom_pointrange() | 오차선 그래프 |
geom_histogram() | 히스토그램 |
geom_density() | 밀도곡선 그래프 |
geom_violin() | 바이올린 플롯 |
scale | ggplot(data, aes(x= ,y= )) + geom_함수() + scale() |
+스케일(scale) : 일부분의 범위만 보고자 할때 사용
scale_x_continuous(), scale_x_continuous()의 Argument
name | 축 이름 설정 | |
scale_x_continuous(name = "Age") | ||
limits | 축 범위 설정 | |
scale_x_continuous(name = "Age") | ||
expand | 여백 조정 | add : 일정 값만큼 여백 추가, mult : 상대적 비율만큼 여백추가 |
scale_x_conriuous(expand=expansion(add=10)) | ||
breaks | 눈금 위치 설정 | |
scale_x_continuous(breaks = c(10, 20, 30)) | ||
labels | 눈금 라벨 변경 | 10.0 같은 소수점 형태로 변환하려면 '10.0' 같이 문자로 적어야 |
scale_x_continuous(breaks = c(10, 20, 30), labels = c("A", "B", "C")) | ||
trans | 축의 변환 | "log" : log(x) "log2" : log_2(x) "log10" :log_10(x) "sqrt" : 제곱근 변환을 적용(루트) "reciprocal" : 1/x "reverse" : 축을 반전. x의 값을 연순으로 나타나게변환 "probability" : 확률 변환을 적용 "probability_inv" : 역 확률 변환을 적용 |
scale_x_continuous(trans = "log") | ||
position | 축의 위치 설정 | "top" : 축을 그래프의 상단에 배치 "bottom" : 축을 그래프의 하단에 배치 "left" : 축을 그래프의 좌측에 배치 "right" : 축을 그래프의 우측에 배치 |
scale_x_continuous(position = "top") |
[ limits ]
ggplot(data, aes(x,y))
+ geom_point()
+ scale_x_continuous(limits=c(1,100)) # 연속형 범위 밖 결손처리
-------------------------------------------
+ scale_x_discrete(limits=c(1,100)) # 범주형 범위 밖 결손처리
-------------------------------------------
+ lims(x=c(0,100), y=c(0,100)) # 연속, 범주 다 사용가능
-------------------------------------------
+ xlim(c(0,100)) + ylim(c(0,100) # 연속, 범주 다 사용가능
--------------------------------------------
+ coord_cartesian(xlim=c(0,100)) # 결손처리 없이 사용가능
# 범위 밖 결손 처리로 그래프가 달라질 수도 있다.
scale_x_continuous( limits=c(0,100)) : 연속형에서 사용
scale_y_continuous( limits=c(0,100))
scale_x_discrete( limits=c(0,100)) : 범주형에서 사용
scale_y_discrete( limits=c(0,100))
lims(x=c(0,100), y=c(0,100))
xlim(c(0,100)) + ylim(c(0,100))
--------------------------------------------------------------------
# 결손처리 없이 출력 범위만 조절 (coord함수에서 자세히)
coord_cartesian(xlim=c(0,100))
각 코드의 차이점
a <- ggplot(sah, aes(age,sbp)) +geom_point()
a + geom_smooth()
a + geom_smooth() + xlim(c(20, 40))
a + geom_smooth() + coord_cartesian (xlim=c(20, 40))
[ expand=expansion ]
scale함수에서 여백 추가하기
scale_x_conriuous(expand=expansion(0)): 여분 없애기
scale_x_conriuous(expand=expansion(add=10)) : 여분 추가(적대적으로)
scale_x_conriuous(expand=expansion(mult=0.3)) : 여분 추가(상대적으로)
[ breaks, label ] : sale_x_conriuous()
scale함수에서 축 눈금 조정
sale_x_conriuous(breaks=c(25,30,45)) : 눈금 위치 지정
sale_x_conriuous(breaks=c(25,30,45),label=c('a','b','c')) : 눈금의 이름 지정
a <- ggplot(sah, aes(age,sbp)) +geom_point()
a + scale_x_continuous(breaks=c(20,40,60))
a + scale_x_continuous(breaks=c(20, 40, 60),labels=c("20.0", "40.0", "60.0"))
install.packages("gridExtra")
library(gridExtra)
# 그래프 그리기
plot1 <- ggplot(data = sah) +
geom_point(aes(x = age, y = sbp, color = chd, shape = chd))
plot2 <- ggplot(data = sah) +
geom_point(aes(x = age, y = sbp, color = chd, shape = chd)) +
scale_x_continuous(breaks = c(30, 40, 50))
plot3 <- ggplot(data = sah) +
geom_point(aes(x = age, y = sbp, color = chd, shape = chd)) +
scale_x_continuous(breaks = c(30, 40, 50), labels = c('a', 'b', 'c'))
# 그래프 배열로 표시
grid.arrange(plot1, plot2, plot3, ncol = 3)
[ breaks, label ] : sale_x_discrete()
작성중...
'Data Science > [강의정리] 시각화 (R)' 카테고리의 다른 글
[시각화] 2강 시각화의 방법2 (0) | 2024.04.21 |
---|