데이터 시각화
데이터를 그래프로 나타내기 위해서는
그래프를 그려달라는 함수를 호출해야 한다.
# 그래프를 그리고()
plt.plot()
# 그린 그래프를 화면에 출력해줘()
plt.show()
만약 plt.plot()만 사용하게 된다면, 그림만 그리고 화면에 보여주지 않기 때문에
plt.show()까지가 하나의 set이다!
plt는 내장함수가 아닌 모듈이다.
따라서 import가 필요하다.
## import는 상단배치
import csv
import matplotlib.pyplot as plt
plt는 pyplot라고 부르는데,
SQL 같은 인터프리터 기반 언어들의 경우 대부분 별칭 설정이 있다.
plt는 matplotlib 라이브러리 안에 속해있으며,
이 라이브러리는 기본 제공 되지 않는다.
csv의 경우 파이썬을 설치하면 기본 제공 해준다.
matplotlib는 파이썬이 개발된 후 계산을 할 일이 많아졌는데,
이를 제공해주는 메서드가 없어서 사람들이 개발한 것이라 기본 제공 해주지 않는다.
java에서 실습했던 jsoup, ojdbc6와 같은 것이다.
따라서 기본 라이브러리가 아니므로, 별도 설치가 필요하다.
cmd 창을 열어 pip install matplotlib를 입력한다.
여기서 pip는 파이썬 라이브러리 설치 관리자 이름을 뜻한다!
설치하면 아래와 같은 화면이 나오며 설치가 된다.
이제 plt.plot(x축 데이터, y축 데이터)를 넣어줘야 하는데
여기서 x축과 y축의 데이터는 보통 list 타입이다.
따라서 별도로 변수를 설정해 준다.
# x축, y축에 넣기 위한 데이터를 list로 만들어준다.
dates = []
temps = []
for row in reader :
a = row[2] # 12월이 데이터만 출력하고 싶다~~~~
b = row[-2] # 최저기
# if a가 Dec로 시작하면 :
# 파이썬에서는 java와 다르게 문자열을 더해줄땐 +가 아닌 ,로 구분
if a.startswith("Dec") :
print(a, b) ## row가 list 타입이라는 사실도 확인 가능!
dates.append(a)
temps.append(b)
plt.plot(dates,temps)
plt.show()
위에서 만들어준 list를
데이터를 확인할 때 append 해준다.
실행 결과
이런 그래프가 만들어진다.
그런데 자세히 보면 y축 데이터가 뒤죽박죽 섞여서 이상하게 나오는 것을 볼 수 있다.
이 문제는 파이썬에서 자주 발생되는데,
데이터의 타입을 확인해 보면 좋다!
print(type(b)를 실행시켜 확인해 보니
데이터가 str 타입이라 발생된 문제임을 확인할 수 있다.
따라서 float 타입으로 형변환을 해주면 된다. (소수점까지 있으므로 int가 아닌 float 타입!)
if a.startswith("Dec") :
print(a, b) ## row가 list 타입이라는 사실도 확인 가능!
dates.append(a)
# b가 str 타입이므로 float 타입으로 형변환
temps.append(float(b))
다시 실행시키면,
정상적으로 출력되는 것을 볼 수 있다!
plt.plot(dates,temps,marker='o',color='r',linestyle=':',linewidth=10, markersize=5)
# 도표이기 때문에 뭘 표현했는지 달아줘야 함
plt.title("Temperature in December", fontsize=15)
plt.xlabel("Date", fontsize=10)
plt.ylabel("Temperature", fontsize=10)
# 그린 그래프를 화면에 출력해줘()
plt.show()
그래프를 보여줄 때 여러 가지 설정을 해줄 수 있다.
plt.title는 그래프가 뭘 나타내는지 알아야 하기 때문에 표시해주는 제목이고,
plt.xlabel / plt.ylabel은 x축과 y축을 나타낸다
marker = 'o' : 마커에 'o' 표시
color = 'r' : 마커 색
linestyle=':' : 선 스타일 점선
나머지는 따로 알아보자!
데이터 자르기 (참고용)
i = 0
for row in reader :
a = row[2] # 12월이 데이터만 출력하고 싶다~~~~
b = row[-2] # 최저기
# if a가 Dec로 시작하면 :
# 파이썬에서는 java와 다르게 문자열을 더해줄땐 +가 아닌 ,로 구분
if a.startswith("Dec") :
print(a, b) ## row가 list 타입이라는 사실도 확인 가능!
dates.append(a)
# b가 str 타입이므로 형변환해준다.
temps.append(float(b))
#데이터를 자르기 위해 데이터 추가될 때마다 1씩 +
i += 1
# 10개만 보기 위함
if i == 10 :
break
만약 위의 데이터가 너무 많다고 느껴진다면
미리 i = 0 변수를 선언해 주고
데이터가 추가될 때마다 1씩 + 해준 뒤,
원하는 데이터 수만큼 추가된다면 break로 for문을 빠져나가 원하는 데이터만 자르는 방법도 있다.
'Python' 카테고리의 다른 글
[Python] Shell의 사용법 (0) | 2024.12.03 |
---|---|
[Python] csv 파일 읽어오기 (1) | 2024.11.27 |
[Python] 파이썬의 자료형 (0) | 2024.11.25 |
[Python] 파이썬 기초 (1) | 2024.11.21 |
[Python] 파이썬 다운로드 (0) | 2024.11.19 |