본문 바로가기
파이썬

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

by fecu 2023. 11. 14.
728x90

이번에는 데이터 시각화 연습문제이다. 기존 자료를 쓰면 또 재미없지 않은가? 새로운 데이터를 이용해보자. 혹시나 해서 지난 글을 아래에 붙여둔다.

 

 

파이썬 데이터 시각화 입문 5 : 데이터 시각화

지난 글에서 Pandas, Matplotlib을 다루는 방법에 대해 간단하게 보았다. 파이썬 데이터 시각화 입문 4 : Matplotlib 다루기 파이썬으로 데이터 시각화를 하려고 할 때, 가장 입문하기 어려웠던 라이브러

fecu.tistory.com

 

1. 파일 및 문제

 

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

 

crime_statistics.xlsx
0.01MB

 

 

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

 

  • 해킹(자료유출)의 발생 및 검거 건수를 시각화 할 것
  • 제목, x 축 레이블, y 축 레이블, 범례를 설정 할 것
  • 선의 스타일을 바꾸되 자유롭게 변경할 것
  • 기타 스타일은 자유

 

 

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개씩 중복되는 것을 볼 수 있다.

 

 

중복되는 연도는 unique()를 통해 제거해준다. 그리고 loc과 조건문을 이용해 해킹의 발생건수, 검거 건수를 추출해서 일단 그래프를 그려본다.

 

x = crime.loc[:,"연도"].unique()
y1 = crime.loc[crime.구분=="발생건수","해킹(자료유출)"]
y2 = crime.loc[crime.구분=="검거건수","해킹(자료유출)"]

plt.plot(x,y1)
plt.plot(x,y2)

 

 

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

 

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("해킹(자료유출) 발생 및 검거 건수") # <-- 추가

 

 

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

 

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("해킹(자료유출) 발생 및 검거 건수")

 

 

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

 

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() # <-- 추가

 

 

3. 글을 마치며

 

다음 글에서는 Matplotlib에서 여러개의 그래프를 한꺼번에 그리는 방법에 대해 다루어 보려고 한다. 아무쪼록 데이터 시각화를 연습하는데 많은 도움이 되었으면 하는 바램이다. 그럼 끝.

 

 

파이썬 데이터 시각화 입문 7 : Matplotlib 객체 다루기

지난 글에서는 Pandas와 Matplotlib을 이용하여 데이터를 시각화해보는 실습 문제를 다루었다. 이번 글에서는 Matplotlib으로 여러개의 그래프를 한번에 그려보는 subplots에 대해 알아보려고 한다. 1. Subp

fecu.tistory.com

 

728x90