Be focused .csv 파일 R로 처리하기

2025. 3. 20. 12:18·🍀 감정 & 자동적 사고
반응형

 

library(tidyverse)
library(lubridate)
library(scales)  # rescale() 및 squish() 사용
library(ggthemes)    # 다양한 테마 사용 가능
library(viridis)     # 색상 조정

# 전문가용 색상 팔레트 (과목 분석용)
study_colors <- c("#1f78b4", "#33a02c", "#e31a1c", "#ff7f00", "#6a3d9a", "#b15928")

# 바탕화면의 CSV 파일 불러오기 및 전처리
file_path <- file.path(Sys.getenv("USERPROFILE"), "Desktop", "BeFocused.csv")
study_data <- read_csv(file_path) %>%
  rename(
    Start_date = `Start date`,
    Assigned_task = `Assigned task`
  ) %>%
  mutate(
    Start_time = mdy_hms(Start_date),
    Weekday    = wday(Start_time, label = TRUE, abbr = FALSE),
    Date       = as_date(Start_time),
    Hour       = hour(Start_time),
    Study_time = 25   # 모든 세션은 25분
  )
# 1. 과목별 총 공부량 분석 (가로 막대그래프)
subject_summary <- study_data %>%
  group_by(Assigned_task) %>%
  summarise(Total_study_time = sum(Study_time, na.rm = TRUE))

ggplot(subject_summary, aes(x = reorder(Assigned_task, Total_study_time), y = Total_study_time, fill = Assigned_task)) +
  geom_bar(stat = "identity") +
  scale_fill_manual(values = study_colors) +
  coord_flip() +
  theme_minimal(base_size = 14) +
  labs(title = "과목별 총 공부 시간",
       x = "과목",
       y = "총 공부 시간 (분)") +
  theme(legend.position = "none")


# 2. 요일별 총 공부량 분석 (세로 막대그래프)
weekday_summary <- study_data %>%
  group_by(Weekday) %>%
  summarise(Total_study_time = sum(Study_time, na.rm = TRUE))

ggplot(weekday_summary, aes(x = Weekday, y = Total_study_time, fill = Weekday)) +
  geom_bar(stat = "identity") +
  scale_fill_brewer(palette = "Set2") +
  theme_minimal(base_size = 14) +
  labs(title = "요일별 총 공부 시간",
       x = "요일",
       y = "총 공부 시간 (분)") +
  theme(legend.position = "none")


# 3. 날짜별 총 공부량 분석 (영역 차트)
date_summary <- study_data %>%
  group_by(Date) %>%
  summarise(Total_study_time = sum(Study_time, na.rm = TRUE))

ggplot(date_summary, aes(x = Date, y = Total_study_time)) +
  geom_area(fill = "steelblue", alpha = 0.6) +
  geom_line(color = "steelblue", size = 1) +
  geom_point(color = "darkblue", size = 2) +
  theme_minimal(base_size = 14) +
  labs(title = "날짜별 총 공부 시간",
       x = "날짜",
       y = "총 공부 시간 (분)") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))
# 요일별 1시간 단위 공부량 집계
hourly_weekday_summary <- study_data %>%
  group_by(Weekday, Hour) %>%
  summarise(Total_study_time = sum(Study_time, na.rm = TRUE), .groups = "drop")

# 요일별 1시간 단위 공부량 히트맵 생성: 
# 0분 -> white, 25분 -> lightgreen, 50분 -> darkgreen
ggplot(hourly_weekday_summary, aes(x = Weekday, y = Hour, fill = Total_study_time)) +
  geom_tile(color = "white") +
  scale_fill_gradientn(
    colors = c("white", "lightgreen", "darkgreen"),
    values = rescale(c(0, 25, 50)),
    limits = c(0, 50),    # 0부터 50까지의 범위로 고정
    oob = squish         # 범위를 벗어난 값은 50에 맞춰 압축
  ) +
  theme_minimal(base_size = 14) +
  labs(
    title = "요일별 1시간 단위 공부량 히트맵 (Green Gradient)",
    x     = "요일",
    y     = "시간대 (Hour)",
    fill  = "공부 시간 (분)"
  ) +
  scale_y_continuous(breaks = seq(0, 23, by = 1)) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'🍀 감정 & 자동적 사고' 카테고리의 다른 글

벤자민 프랭클린과 유예된 삶  (6) 2025.06.19
Proactive와 Reactive의 차이  (0) 2025.04.27
'🍀 감정 & 자동적 사고' 카테고리의 다른 글
  • 벤자민 프랭클린과 유예된 삶
  • Proactive와 Reactive의 차이
해랑(Sea-wave)
해랑(Sea-wave)
관심있는 주제를 작성합니다. 환경·경제·사회·기술 등
  • 해랑(Sea-wave)
    해랑의 디지털 저장소A
    해랑(Sea-wave)
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 🍀 감정 & 자동적 사고
      • 🛒 생활정보
      • 🕵️‍♂️ 법학 및 변호사 준비
      • 📊 R & 데이터 분석
      • 📚 정보스크랩 (Copy & Paste)
      • 🗾 일본어 & 해외생활
      • 💎 경제 이야기
      • 🧑‍🏫 수업 노트
      • 💛 연애와 관계
      • 🧭 미래 설계
      • 📜 역사
      • 🚗 로블록스 & 게임
      • 🧪 자연과학
      • ✅완료한 도전
      • 기술고시
      • 캐드
      • GIS
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    JPOP
    성적
    로스쿨
    홋카이도
    변호사시험
    JENESYS2025
    일한문화교류기금
    챗gpt
    ONSOWEEK 2023
    일본대사관
    ChatGPT
    후쿠시마현
    1학년 1학기
    삿포로
    현대차 정몽구 재단 임팩트 컨퍼런스
    현대차 정몽구재단
    데이터분석
    학업
    온드림소사이어티
    오블완
    R
    일본
    임팩트 컨퍼런스
    티스토리챌린지
    한국
    현대차 정몽구 스칼라십
    후쿠시마
    온소위크 2023
    한국청년방일단
    현대차정몽구재단 2023
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
해랑(Sea-wave)
Be focused .csv 파일 R로 처리하기
상단으로

티스토리툴바