1. DATA
CPS85: R의 mosaicData pacakage에 있는 CPS85데이터를 사용합니다. CPS는 The Current Population Survey의 약자로, 인구 조사(census)를 하는 기간 사이에 정보를 보완하는 데 사용됩니다. 이 데이터는 성별, 교육 기간, 경력 기간, 직업 상태, 거주 지역 및 조합원 자격을 포함하여 근로자의 임금 및 기타 특성에 대한 정보와 함께 무작위 표본으로 구성됩니다.
2. Exploratory Analysis
시각화 전 Exploratory analysis는 필수.
# load data
data(CPS85 , package = "mosaicData")
# basic ggplot
ggplot(data = CPS85,
mapping = aes(x = exper, y = wage)) +
geom_point()
summary와 함께 히스토그램을 보면 wage에 아웃라이어가 있음을 알 수 있습니다. 아웃라이어를 제거 후, 다시 scatterplot을 그려보겠습니다.
3. facet_wrap을 이용한 ggplot
아웃라이어를 제거 후, ggplot을 이용하여 데이터를 요리조리 시각화해보겠습니다(fun begins!)
ggplot(df, mapping = aes(x = exper, y = wage, color = sex)) + # base and define colour by group (shape, size, fill etc availabe)
geom_point(alpha = .7, #transparency
size = 3) + #point size
geom_smooth(method = "lm", se=FALSE) + #overlay smoothing line "lm", "glm", "gam", "loess" or a function
scale_x_continuous(breaks = seq(0,60,10)) + # x-axis scale
scale_y_continuous(breaks = seq(0,30,10),label = scales::dollar) + # y-axis scale
scale_color_manual(values = c("indianred1", "deepskyblue1")) + # manually pick the colours
facet_wrap(~sector)+ # grouping view (categorical value)
labs(title = "Relationship between experience & wage", # labels
subtitle="by race",
x = "Years of experience",
y= "Wage per hour") +
theme_classic() # theme
왼쪽에서는 경력에 따른 남녀 임금의 차이를 직업군별로 볼 수 있고, 오른쪽에서는 인종(백인 vs 백인 외)별로 볼 수 있습니다. 분석하고자하는 목적에 따라, facet_wrap에 해당 catgorical variable을 넣어줍니다.
4. facet_grid을 이용한 ggplot
facet_wrap에서는 하나의 categorical variable을 정하여 그에 따른 기존 플랏을 보여주는 것이었다면, facet_grid는 두개의 categorical variables을 이용하여 관계를 알아볼 수 있습니다.
ggplot(df, mapping = aes(x = exper, y = wage, color = sex)) +
geom_point(alpha = .7,
size = 3) +
geom_smooth(method = "lm", se=FALSE) +
scale_x_continuous(breaks = seq(0,60,10)) +
scale_y_continuous(breaks = seq(0,30,10),label = scales::dollar) +
scale_color_manual(values = c("indianred1", "deepskyblue1")) +
facet_grid(sector~race)+
labs(title = "Relationship between experience & wage",
subtitle="by sector and race",
x = "Years of experience",
y= "Wage per hour")+
theme_classic()
5. ggplot 색 종류
ggplot이 알아서 색을 정해주기도 하지만, 위의 코드에서도 보았듯 scale_color_manual을 사용하여 이름으로 지정할 수도 있고, hex color기호로 사용할 수도 있습니다. 개인적으로는 이름을 사용하는 것이 더 편하여 리스트를 만들어보았습니다.(이름을 보는 재미가 꽤 쏠쏠합니다!) 무려 657가지 종류가 있습니다.
'통계 & 데이터분석 > DataViz' 카테고리의 다른 글
[R] 한국 인구밀도 R에서 3D로 그리기 (0) | 2024.08.27 |
---|---|
[R] Korea Forest in 3D (2) | 2024.08.27 |
[R] 호주 인구분포 - Are there any people? (0) | 2024.08.26 |
[R] Carbon Dioxide uptake in Grass Plants(식물의 이산화탄소 흡수량 분석) (0) | 2023.07.06 |
[R] map_data와 ggplot 이용하여 지도 그리기 (0) | 2023.07.04 |
댓글