반응형
산점도 (scatter plot)
산점도(Scatter Plot)는 두 개의 변수 간의 관계를 점을 통해서 표시하는 그래프이다.
각 데이터 포인트는 두 변수의 값을 나타내며, 이를 x축과 y축에 대응시켜 산포도를 생성한다.
산점도를 통해 두 변수 간의 상관 관계를 확인할 수 있으며, 양의 상관 관계인 경우 데이터 포인트는 오른쪽 상단으로 향하고, 음의 상관 관계인 경우 왼쪽 상단으로 향한다.
데이터 포인트가 어디에 집중되어 있는지와 분포를 파악할 수 있으며, 데이터가 여러 군집으로 구분될 때 산점도를 사용하여 군집을 식별하고 분류할 수 있다.
R 기본함수 : plot 함수 사용
library(palmerpenguins) data("penguins") #Dataset 불러오기 str(penguins) #Dataset 구성 확인 |
> str(penguins) #Dataset 구성 확인 tibble [344 × 8] (S3: tbl_df/tbl/data.frame) $ species : Factor w/ 3 levels "Adelie","Chinstrap",..: 1 1 1 1 1 1 1 1 1 1 ... $ island : Factor w/ 3 levels "Biscoe","Dream",..: 3 3 3 3 3 3 3 3 3 3 ... $ bill_length_mm : num [1:344] 39.1 39.5 40.3 NA 36.7 39.3 38.9 39.2 34.1 42 ... $ bill_depth_mm : num [1:344] 18.7 17.4 18 NA 19.3 20.6 17.8 19.6 18.1 20.2 ... $ flipper_length_mm: int [1:344] 181 186 195 NA 193 190 181 195 193 190 ... $ body_mass_g : int [1:344] 3750 3800 3250 NA 3450 3650 3625 4675 3475 4250 ... $ sex : Factor w/ 2 levels "female","male": 2 1 1 NA 1 2 1 2 NA NA ... $ year : int [1:344] 2007 2007 2007 2007 2007 2007 2007 2007 2007 2007 ... |
plot #1
plot (penguins$bill_length_mm, penguins$bill_depth_mm,
col = penguins$species,
xlab = "부리 길이",
ylab = "부리 높이",
main = "팔머 펭귄 부리 사이즈 분포")
plot #2 : Grooup (species)별 색상 지정
plot(penguins$bill_length_mm, penguins$bill_depth_mm,
xlab = "부리 길이",
ylab = "부리 높이",
main = "팔머 펭귄 부리 사이즈 분포",
col = ifelse(penguins$species == "Adelie", "blue",
ifelse(penguins$species == "Gentoo", "red", "green"))
)
plot #3 : Grooup (species)별 색상 및 pch 지정
pch (point character)는 plot 함수를 통해 그려지는 그래프의 데이터 포인트(점)의 모양을 지정하는 옵션
# 종별로 색상 및 pch 지정
plot(penguins$bill_length_mm, penguins$bill_depth_mm,
xlab = "부리 길이",
ylab = "부리 높이",
main = "팔머 펭귄 부리 사이즈 분포",
col = ifelse(penguins$species == "Adelie", "blue",
ifelse(penguins$species == "Gentoo", "red", "green")),
pch = ifelse(penguins$species == "Adelie", 1,
ifelse(penguins$species == "Gentoo", 2, 19))
)
pch (point character) 옵션
?pch
300x250
ggplot + geom_point
geom_point #1
ggplot(data = penguins, aes(x=bill_length_mm, y=bill_depth_mm, col=species)) +
geom_point() +
labs(title = "팔머 펭귄 부리 사이즈 분포", x = "부리 길이", y = "부리 높이")
geom_point #2 : Grooup (species)별 색상 및 pch 지정
ggplot(data = penguins, aes(x = bill_length_mm, y = bill_depth_mm,
color = species, shape = species, size = species)) +
geom_point() +
labs(title = "팔머 펭귄 부리 사이즈 분포", x = "부리 길이", y = "부리 높이") +
scale_color_manual(values = c("Adelie" = "blue", "Gentoo" = "red", "Chinstrap" = "green")) +
scale_shape_manual(values = c("Adelie" = 1, "Gentoo" = 2, "Chinstrap" = 3)) +
scale_size_manual(values = c("Adelie" = 2, "Gentoo" = 2, "Chinstrap" = 3))
aes 함수를 사용하여 x 축, y 축, 색상, shape, 그리고 크기를 설정
scale_color_manual 함수를 사용하여 종별로 색상을 수동으로 지정
scale_shape_manual 함수를 사용하여 종별로 pch 값을 수동으로 지정
scale_size_manual 함수를 사용하여 종별로 포인트의 크기를 수동으로 지정
geom_point #3 : position_ jitter, geom_jitter
position_jitter 함수를 사용하여 데이터 포인트를 약간 흩뿌리는 효과를 적용
데이터 점들을 최대한 안 겹치게 만들어 시각화 효과 증대
ggplot(data = penguins, aes(x = bill_length_mm, y = bill_depth_mm, color = species)) +
geom_point(position = position_jitter(width = 0.1, height = 0.1), size=3) +
labs(title = "팔머 펭귄 부리 사이즈 분포", x = "부리 길이", y = "부리 높이")
ggplot(data = penguins, aes(x = bill_length_mm, y = bill_depth_mm, color = species)) +
geom_jitter(width = 0.1, height = 0.1) +
labs(title = "팔머 펭귄 부리 사이즈 분포", x = "부리 길이", y = "부리 높이")
geom_point 대신에 geom_jitter 함수를 사용할 수도 있으며, width와 height 매개변수를 사용하여 포인트의 흩뿌림 정도를 조절
728x90
'데이터 분석 (with Rstudio)' 카테고리의 다른 글
[Rstudio] 상관분석 (Correlation Analysis) (2) | 2023.11.09 |
---|---|
[Rstudio] Line plot 선 그래프 with ggplot (0) | 2023.10.18 |
[Rstudio] 막대 그래프 (bar plot, column plot) with ggplot (0) | 2023.10.16 |
[Rstudio] 한 화면에 여러 개 복수 그래프 출력 (par, plot_grid) (0) | 2023.10.15 |
[Rstudio] Boxplot 박스플롯 (상자 수염 그림) with ggplot (1) | 2023.10.15 |