Python 데이터 시각화

Python 데이터 시각화
Matplotlib 기반으로 하는 Seaborn 라이브러리를 이용하여 Python 그래프 그리기 방법 등 데이터 시각화 방법에 대해서 설명드리도록 하겠습니다.

Python 데이터 시각화

데이터 시각화 라이브러리

이 글에서 Python을 이용하여 그래프를 그리거나 데이터를 시각화 하기 위해서 Seaborn 이라는 패키지를 이용할 것입니다. 이 피캐지는 matplotlib 패키지를 기반으로 하고 있으며, pandas 데이터를 이용하여 쉽게 통계학적인 그래프를 그릴 수 있습니다. Seaborn 라이브러리는 다음과 같은 특징이 있습니다.

  • 데이터셋 지향적인 API 제공
  • 다양한 종류의 예제 데이터셋 제공
  • 데이터 패턴등을 분석 하기 위한 편리한 뷰 기능 제공
  • Linear Regression 모델의 시각화 기능 제공
  • color palettes 등의 도구 제공

Python seaborn 설치

seaborn 패키지는 conda 또는 pip 명령어로 다음과 같이 설치 할 수 있습니다.

$ conda install seaborn
$ pip install seaborn

이 글에서 사용된 예제 소스코드는 아래의 명령어로 다운 받으실 수 있습니다.

$ git clone https://hiseon.me/reps/python-seaborn-example.git

Seaborn 데이터셋

Python 데이터 시각화를 위해서는 샘플 데이터가 필요합니다. Seaborn 패키지에는 load_dataset 함수로 샘플 데이터를 읽어올 수 있습니다. 현재 Seaborn 에서 제공되는 데이터셋은 아래의 페이지에서 참고 하실 수 있습니다.

https://github.com/mwaskom/seaborn-data

Python 그래프 그리기

 

아래는 tips 라는 데이터셋을 시각화 한 예제입니다.

import seaborn as sns
import matplotlib.pyplot as plt
sns.set()
tips = sns.load_dataset("tips")
sns.relplot(x="total_bill", y="tip", col="time",
            hue="smoker", style="smoker", size="size",
            data=tips);
Python 데이터 시각화

위의 예제 소스코드를 설명 드리도록 하겠습니다. 먼저 아래의 내용은 seaborn 패키지를 import 하는 코드입니다.

import seaborn as sns
import matplotlib.pyplot as plt

seaborn 패키지는 그래프를 그리기 위해서 내부적으로는 matplotlib 패키지를 사용합니다. 대부분의 그래프는 직접 seaborn 패키지를 이용하여 그릴 수 있지만, 커스터마이징 등은 matplotlib 패키지의 API를 이용해야 합니다.
다음 코드 seaborn 패키지의 테마와 스케일링, 컬러 팔레트(Color Palette) 등을 기본 설정 값으로 사용한다는 의미입니다.

sns.set()

Python 그래프 그리기 위해서 아래의 함수를 이용하여 tips 라는 예제 데이터를 가져옵니다.

tips = sns.load_dataset("tips")

아래의 코드는 그래프를 그리는 내용입니다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

sns.relplot(x="total_bill", y="tip", col="time",
            hue="smoker", style="smoker", size="size",
            data=tips)

다음 코드는 그래프를 출력하는 내용입니다.

plt.show()

다음 코드는 직접 데이터셋을 생성하여 그래프를 그리는 예제를 나타냅니다.

import seaborn as sns
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.DataFrame(dict(time=np.arange(500),
                       value=np.random.randn(500).cumsum()))
g = sns.relplot(x="time", y="value", kind="line", data=df)

plt.show()

회귀 데이터 시각화

아래의 예제 소스코드는 회귀(Regression) 데이터셋을 시각화 하는 예제입니다.

import seaborn as sns
import matplotlib.pyplot as plt

sns.set(style="ticks")

# Load the example dataset for Anscombe's quartet
df = sns.load_dataset("anscombe")

# Show the results of a linear regression within each dataset
sns.lmplot(x="x", y="y", col="dataset", hue="dataset", data=df,
           col_wrap=2, ci=None, palette="muted", height=4,
           scatter_kws={"s": 50, "alpha": 1})

plt.show();

원본 데이터 셋는 각각의 x, y 값만 주어졌지만, 데이터셋으로 부터 선형 회귀 그래프가 그려진 것을 확인 할 수 있습니다.

다양한 포인트 크기와 색상의 산점도

아래의 예제코드는 mpg 데이터 셋을 이용하여 산점도(Scatterplot)를 그리는 예제입니다.

import seaborn as sns
import matplotlib.pyplot as plt

sns.set(style="white")

# Load the example mpg dataset
mpg = sns.load_dataset("mpg")

# Plot miles per gallon against horsepower with other semantics
sns.relplot(x="horsepower", y="mpg", hue="origin", size="weight",
            sizes=(40, 400), alpha=.5, palette="muted",
            height=6, data=mpg)

plt.show()

각각의 카테고리의 값에 따라서 색상과 크기를 한꺼번에 산점도에 나타낸 것을 확인 할 수 있습니다.

에러 범위와 함께 시계열 데이터 시각화

아래의 예제 코드는 시계열 데이터로 라인 그래프를 그리면서 에러범위를 함께 나타낸 예제입니다.

import seaborn as sns
import matplotlib.pyplot as plt

sns.set(style="darkgrid")

# Load an example dataset with long-form data
fmri = sns.load_dataset("fmri")

# Plot the responses for different events and regions
sns.lineplot(x="timepoint", y="signal",
             hue="region", style="event",
             data=fmri)

plt.show();

예제를 실행한 화면은 다음과 같습니다.

산점도와 등고선 시각화

아래의 예제는 주어진 데이터셋에서 Paired density 와 산점도를 Matrix 그래프로 출력한 예제입니다.

import seaborn as sns
import matplotlib.pyplot as plt

sns.set(style="white")

df = sns.load_dataset("iris")

g = sns.PairGrid(df, diag_sharey=False)
g.map_lower(sns.kdeplot)
g.map_upper(sns.scatterplot)
g.map_diag(sns.kdeplot, lw=3)

plt.show();

위의 그래프는 데이터의 패턴등을 분석하는데 유용하게 사용 될 수 있을 것입니다.

 

[출처] https://hiseon.me/python/python-data-visualization/

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
58 [python][flask] (flask) windows에서 flask와 apache 연동 file 졸리운_곰 2023.01.17 354
57 [Python][flask] Flask 로 Rest API 구현하기 - 개발환경구축 file 졸리운_곰 2022.12.24 848
56 [python][flask] bitnami의 django 서버로 flask 서비스 file 졸리운_곰 2021.12.10 592
55 [웹서버] Flask + REST API + Swagger file 졸리운_곰 2021.04.04 431
54 Python Flask 로 간단한 REST API 작성하기 file 졸리운_곰 2021.04.04 769
53 [파이썬][Flask] [번역] Flask 에서 백그라운드 작업을 처리하는 방법 file 졸리운_곰 2021.03.04 902
52 FLASK를 이용하여 PYTHON에서 PYTORCH를 REST API로 배포하기 졸리운_곰 2021.02.09 454
51 [flask 트랜드 홈페이지 개발] 10 - 다음 뉴스 키워드로 크롤링 file 졸리운_곰 2020.12.03 399
50 [python 트랜드 홈페이지개발] 9 - Flask POST file 졸리운_곰 2020.12.03 344
49 [python 트랜드 홈페이지개발] 8 - 약간의 레이아웃 설정하기 file 졸리운_곰 2020.12.03 518
48 [python 트랜드 홈페이지개발] 7 - 개요 file 졸리운_곰 2020.12.03 550
47 [python 트랜드 홈페이지개발] 6 - href 연결하기 file 졸리운_곰 2020.12.03 604
46 [python 트린드 홈페이지개발] 5 - 다른 페이지 크롤링 file 졸리운_곰 2020.12.01 506
45 [python 트린드 홈페이지개발] 4 - flask에 css 적용하기 file 졸리운_곰 2020.12.01 569
44 [python 트린드 홈페이지개발] 3 - 크롤링한 데이터 html에 보여주기 file 졸리운_곰 2020.12.01 546
43 [python 트린드 홈페이지개발] 2 - flask 프로젝트 생성, 세팅 file 졸리운_곰 2020.12.01 460
42 [python 트린드 홈페이지개발] 1 - 트렌드 홈페이지 개발 개요 file 졸리운_곰 2020.12.01 450
41 Flask 에서 CKEditor 파일첨부 연동 졸리운_곰 2020.11.26 631
40 플라스크 (Flask) - 회원가입 기능 만들기 (MVC 패턴 ) file 졸리운_곰 2020.11.26 518
39 Simple Python Flask Program with MongoDB file 졸리운_곰 2020.11.07 441
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED