Notice
Recent Posts
Recent Comments
Link
160x600
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 예측
- tensorflow
- HeidiSQL
- 데이터전처리
- 데이터베이스
- 회귀모델
- Deep Learning
- pandas
- 해석
- sql
- 훈련
- 딥러닝
- python기초
- MariaDB
- Database
- 데이터
- keras
- DB
- sklearn
- python
- pythone
- 데이터 수집
- 머신러닝
- 데이터 분석
- 정확도
- 파싱 오류
- 오라클
- Oracle
- 시각화
- 데이터 가공
Archives
- Today
- Total
코딩헤딩
[웹 크롤링(web crawling)] 영화데이터시각화 2 (점(분포) 그래프) 본문
728x90
https://coding-heading.tistory.com/69
[크롤링(crawling)] 영화데이터수집
크롤링(crawling) 웹상에 존재하는 데이터들을 수집하는 작업 (프로그래밍으로 자동화) 웹 페이지의 html 코드를 가져와서, HTML/CSS 등을 필요한 데이터만 추출하는 기법 Open API(Rest API)를 제공하는 서
coding-heading.tistory.com
위 글부터 이어집니다.
https://coding-heading.tistory.com/70
[크롤링(crawling)] 영화데이터시각화 1(막대그래프)
# - 행렬데이터 처리 라이브러리 import pandas as pd 1. 외부파일 읽어 들이기 file_path = "./data/movie_reviews.txt" df_org = pd.read_csv(file_path, delimiter="\t", names=["title", "score", "comment", "label"]) #구분자 알려주기 df_
coding-heading.tistory.com
저번 글에서는 수집한 데이터를 바탕으로 영화별 평점평균을 나타내는 막대그래프를 그렸다.
이번 글에서는 점(분포) 그래프를 그려보겠다.
* 각 영화별 평점 분포도 그리기
- 하나의 큰 그래프 안에 10개의 그래프를 넣어서 표현 => subplot 이라고 한다.
- 5행 2열의 subplot 생성하여 구현하기
### 시각화 라이브러리
import matplotlib.pyplot as plt
### 폰트 설정 라이브러리
from matplotlib import font_manager, rc
### 한글폰트 설정
plt.rc("font", family="Malgun Gothic")
### 마이너스 기호설정
plt.rcParams["axes.unicode_minus"] = False
# - subplot(행갯수, 열갯수, 전체 그래프 크기)
# - fig : 큰 그래프 정보
# - axs : 5행 2열의 내부 그래프 공간 정보
fig, axs = plt.subplots(5,2, figsize=(15,25))
### 여러개의 그래프를 for문을 이용하여 표현하고자 할 때 아래먼저 수행
# - flatten() : 틀 정렬하기 -> 5행 2열의 틀을 정렬해 놓기
axs = axs.flatten()
### 각 그래프를 행렬 공간의 subplot에 넣기
for title, avg, ax in zip(avg_score.keys(), avg_score.values(), axs):
#print(f"{title} / {score} / {ax}")
### x축에는 영화리뷰 갯수, y축에는 평점평균
### 리뷰 갯수 추출하기
num_reviews = len(df_new[df_new["title"]==title])
# - arange(num) : 0 부터 num까지의 값을 순차적으로 만들기
x = np.arange(num_reviews)
#print(f"x -----> {x}")
### y축에는 평점 추가
y = df_new[df_new["title"]==title]["score"]
#print(f"y -----> {y}")
### 각 그래프에 제목 넣기
subtitle = f"{title} ({num_reviews}명)"
ax.set_title(subtitle, fontsize=15, fontweight="bold")
### 점 그래프 그리기
# - "^" : 세모로 그래프 그리는 마커 기호
# - "o" : 점으로 그래프 그리는 마커 기호
ax.plot(x,y,"^")
### 각 영화별 평점 평균을 빨간색 점선으로 표시하기
# - axhline() : 각 subplot 공간에 수평선 그리기
# - [-] 하나일때 그냥 선, [--] 두개일 때 점선
ax.axhline(avg, color="red", linestyle="--")
plt.savefig("./img/각 영화별 평점 분포도.png")
plt.show
728x90
'크롤링(crawling) | 시각화' 카테고리의 다른 글
[웹 크롤링(web crawling)] 영화데이터시각화 5 워드클라우드(wordcloud) (0) | 2023.12.07 |
---|---|
[웹 크롤링(web crawling)] 영화데이터시각화 3 (원형 그래프) (2) | 2023.12.05 |
[웹 크롤링(web crawling)] 영화데이터시각화 1(막대그래프) (0) | 2023.12.04 |
[웹 크롤링(web crawling)] 영화데이터수집 (1) | 2023.12.04 |