파이썬 데이터 시각화 입문 6 - 연습문제

힘센캥거루
2025년 10월 8일(수정됨)
2
12

이번에는 데이터 시각화 연습문제이다.

기존 자료를 쓰면 또 재미없지 않은가?

새로운 데이터를 이용해보자.

1. 파일 및 문제

파일은 공공데이터 포털에서 받은 연간 범죄 발생 건수, 검거 건수 통계이다.

아래의 조건에 따라 그래프를 그려보자.

  • 해킹(자료유출)의 발생 및 검거 건수를 시각화 할 것

  • 제목, x 축 레이블, y 축 레이블, 범례를 설정 할 것

  • 선의 스타일을 바꾸되 자유롭게 변경할 것

  • 기타 스타일은 자유

파이썬 데이터 시각화 입문 6 - 연습문제-1

2. 문제 해답

먼저 지난 글에서 제일 처음 내용을 복붙한다. 여기서 바꿀 것은 파일의 경로 뿐이다.

import pandas as pd

# 모듈 호출 및 한글폰트 설정
import matplotlib.pyplot as plt
import matplotlib

# MacOS에서 폰트설정
# matplotlib.rcParams["font.family"] = "AppleGothic"

# 윈도우에서 폰트설정
matplotlib.rcParams["font.family"] = "Malgun Gothic"

# 폰트 크기 설정
matplotlib.rcParams["font.size"] = 13

# 마이너스 출력 문제 해결
plt.rcParams['axes.unicode_minus'] = False

crime = pd.read_excel("./crime_statistics.xlsx")
crime.head(3)

데이터를 확인해 보면, 연도가 구분에 따라서 2개씩 중복되는 것을 볼 수 있다.

파이썬 데이터 시각화 입문 6 - 연습문제-2

중복되는 연도는 unique()를 통해 제거해준다.

그리고 loc과 조건문을 이용해 해킹의 발생건수, 검거 건수를 추출해서 일단 그래프를 그려본다.

x = crime.loc[:,"연도"].unique()
y1 = crime.loc[crime.구분=="발생건수","해킹(자료유출)"]
y2 = crime.loc[crime.구분=="검거건수","해킹(자료유출)"]
plt.plot(x,y1)
plt.plot(x,y2)
파이썬 데이터 시각화 입문 6 - 연습문제-3

그래프에 범례와 제목을 추가해보자.

x = crime.loc[:,"연도"].unique()
y1 = crime.loc[crime.구분=="발생건수","해킹(자료유출)"]
y2 = crime.loc[crime.구분=="검거건수","해킹(자료유출)"]
plt.plot(x,y1,label="발생건수") # <-- 추가
plt.plot(x,y2,label="검거건수") # <-- 추가
plt.legend() # <-- 추가
plt.title("해킹(자료유출) 발생 및 검거 건수") # <-- 추가
파이썬 데이터 시각화 입문 6 - 연습문제-4

그리고 축 이름도 설정해준다.

x = crime.loc[:,"연도"].unique()
y1 = crime.loc[crime.구분=="발생건수","해킹(자료유출)"]
y2 = crime.loc[crime.구분=="검거건수","해킹(자료유출)"]
plt.plot(x,y1,label="발생건수")
plt.plot(x,y2,label="검거건수")
plt.legend()
plt.xlabel("연도") # <-- 추가
plt.ylabel("건수") # <-- 추가
plt.title("해킹(자료유출) 발생 및 검거 건수")
파이썬 데이터 시각화 입문 6 - 연습문제-5

마지막으로 선 스타일을 지정하고 그리드를 추가해 주었다.

x = crime.loc[:,"연도"].unique()
y1 = crime.loc[crime.구분=="발생건수","해킹(자료유출)"]
y2 = crime.loc[crime.구분=="검거건수","해킹(자료유출)"]
plt.plot(x,y1,"^--",label="발생건수") # <-- 추가
plt.plot(x,y2,"o-",label="검거건수") # <-- 추가
plt.legend()
plt.xlabel("연도")
plt.ylabel("건수")
plt.title("해킹(자료유출) 발생 및 검거 건수")
plt.grid() # <-- 추가
파이썬 데이터 시각화 입문 6 - 연습문제-6

3. 글을 마치며

다음 글에서는 Matplotlib에서 여러개의 그래프를 한꺼번에 그리는 방법에 대해 다루어 보려고 한다.

아무쪼록 데이터 시각화를 연습하는데 많은 도움이 되었으면 하는 바램이다.

관련 글

학교 업무 자동화 - AI를 이용한 생활기록부 점검 과목별 세부능력 특기사항편
학교 업무 자동화 - AI를 이용한 생활기록부 점검 과목별 세부능력 특기사항편
학교에서 가장 의미없고 힘들며 지루한 업무를 하나 뽑으라고 하면 나는 생기부 점검을 뽑을 것이다.중학교에서는 생활기록부가 그리 중요치 않지만 고등학교에서는 입시와 관련되어 있기 때문에 무척 중요하다.문제는 이런 생기부 점검에서 찾는 것이 고작 단순 오탈자, 기재 금지용...
밑바닥부터 만들면서 배우는 LLM 7장 독서 후기 및 챌린지 후기
밑바닥부터 만들면서 배우는 LLM 7장 독서 후기 및 챌린지 후기
7장 내용은 지시를 따르도록 미세 튜닝하는 과정이다.어떤 질문에 대해 기대하는 응답을 하도록 하는 것.역시나 필요한 것은 데이터이다.1. 지시 미세 튜닝 절차여기서의 핵심은 질문-응답 데이터 셋을 준비하여 입력-출력 쌍으로 훈련시키는 것.이걸 프롬프트 스타일이라고 한다...
밑바닥부터 만들면서 배우는 LLM 6장 독서 후기
밑바닥부터 만들면서 배우는 LLM 6장 독서 후기
6장은 분류를 위한 미세 튜닝하기이다.예제로 나오는 것은 스팸 분류기 만들기.스팸 분류기는 이것이 스팸인지, 스펨이 아닌지를 분류하는 것이므로 출력의 결과가 0, 1과 같은 값으로 나와야 한다.1. 미세튜닝의 순서미세 튜닝의 과정은 모델을 훈련시키는 과정과 비슷하다.데...
밑바닥부터 만들면서 배우는 LLM 5장 독서 후기
밑바닥부터 만들면서 배우는 LLM 5장 독서 후기
오늘은 12월 14일이다.사실 챌린지 기간은 이미 2주나 지나 버렸지만, 그렇다고 후기를 포기할 순 없었다.이렇게 남기는 TIL이 나중에 피와 살이 되기 때문.코드 자체보다는 의미에 집중해서 적어보려고 한다.1. 모델의 손실 계산GPT 모델을 만든 후에 어떤 방식으로 ...
밑바닥부터 만들면서 배우는 LLM 4장 독서 후기
밑바닥부터 만들면서 배우는 LLM 4장 독서 후기
오늘이 11월 26일이니, 매일 1장식 독파하면 챌린지 성공이다.첫째와 둘째의 방해 속에서 가능할지 모르겠다.1. 더미 트랜스포머GPT 모델을 만들면서 파이토치에서 트랜스포머 더미 블록을 가져오는 것을 봤다.찾아보니 pytorch의 nn 안에는 이미 여러 트랜스포머 모...
밑바닥부터 만들면서 배우는 LLM 3장 독서 후기
밑바닥부터 만들면서 배우는 LLM 3장 독서 후기
맥북에 물을 한바가지 쏟은 후, 멘붕이 와서 3~4일 정도를 허비했다.지금 생각해보니 그냥 어차피 맥북은 나간거고, 수리 맡긴다고 생각하고 뭐라도 할걸 그랬나 싶다.어쨌든 조금 늦었지만, 그래도 끝까지 달려봐야 한다는 생각에 3장 후기를 남긴다.1. 어텐션 메커니즘3장...

댓글을 불러오는 중...