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
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바