경기도미래기술학교 AI개발자 부트캠프 16일차 TIL - 데이터 시각화. matplotlib, pyplot, seaborn.

2023. 5. 30. 18:23카테고리 없음

반응형

 

벌써 4주차다. 거의 한달 차라는 이야기인데, 딱히 발전한 것이 있는지는 잘 모르겠다.. 파이썬은 얼기설기 배워서 좀 더 단단해진 것 같기도 하고.. 데이터 프레임을 배웠고.. 근데 데이터프레임도 완벽하게 아는 것은 아니고. 아무튼 계속 반복하면서 배워야 하는 부분.

 

matplotlib : 파이썬에서 데이터를 시각화하기 위한 라이브러리.

 

pyplot : matplotlib의 하위 모듈로 시각화를 지원한다. matplotlib에서는 이 외에도 patches, figure 등 다양한 모듈이 있는데 나는 그중에서 pyplot을 배운 것. 다시 한 번 상기하는 내장함수, 메서드, 모듈, 라이브러리의 차이를 읽자.

라이브러리(Library):
라이브러리는 재사용 가능한 코드의 집합이며, 특정 기능을 제공하는 함수, 클래스, 상수 등의 모음입니다. 라이브러리는 보통 여러 모듈로 구성됩니다. 예를 들어, NumPy는 파이썬의 수치 계산에 사용되는 라이브러리이며, Pandas는 데이터 분석을 위한 라이브러리입니다. 라이브러리는 일반적으로 특정 작업을 수행하기 위한 다양한 모듈과 함수를 제공하며, 이를 활용하여 코드를 간결하고 효율적으로 작성할 수 있습니다.

모듈(Module):
모듈은 파이썬에서 코드의 조직화와 재사용을 위해 사용되는 단위입니다. 모듈은 파일 단위로 구성되며, .py 확장자를 가진 파이썬 소스 코드 파일입니다. 모듈은 함수, 클래스, 변수 등을 정의하고, 관련 기능을 제공하는 코드를 포함합니다. 다른 모듈이나 스크립트에서 import 문을 사용하여 모듈을 불러와 사용할 수 있습니다. 예를 들어, "math" 모듈은 수학 관련 함수들을 제공하며, "datetime" 모듈은 날짜와 시간을 다루는 함수들을 제공합니다.

메서드(Method):
메서드는 객체(Object) 지향 프로그래밍에서 클래스(Class)에 속하는 함수를 말합니다. 클래스는 특정 객체 타입의 속성과 동작을 정의하는 템플릿입니다. 메서드는 해당 클래스에 정의된 특정 동작을 수행하기 위해 사용됩니다. 예를 들어, "list" 클래스의 "append" 메서드는 리스트에 요소를 추가하는 기능을 제공합니다. 메서드는 클래스 내부에서 정의되며, 해당 클래스의 객체에서 호출하여 사용할 수 있습니다.

내장 함수(Built-in Functions):
내장 함수는 파이썬 언어 자체에 미리 내장되어 있는 함수들을 말합니다. 이러한 함수들은 언어 자체의 핵심적인 기능을 제공하며, 추가적인 설치 없이 바로 사용할 수 있습니다. 예를 들어, print(), len(), input() 등은 파이썬의 내장 함수입니다. 내장 함수들은 일반적인 작업을 수행하는데 사용되며, 자주 사용되는 기본적인 기능들을 제공합니다.

matplotlib을 눌렀을 때와 pyplot을 눌렀을 때. pyplot은 .py 확장자를 가진 파이썬 소스코드 파일으로, 모듈이다.

 

# import 
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
import warnings
warnings.filterwarnings('ignore')

x = [1,2,3,4,5,6]
y = [1,2,3,4,5,6]
y1 = [2,4,6,7,8,7]


plt.plot(x,y,'--' ,marker='v', label='man')
plt.plot(x,y1,'o', label='woman')
plt.title("line plot")
plt.xlabel("x value")
plt.ylabel("y value")
plt.legend()
plt.show()

 

 

pyplot.plot을 하면 된다. plot은 그래프를 그리는 역할을 하는 메소드이다. 대신 리스트의 갯수가 맞아야 한다. 모두 맞아야 한다. label은 범례 이름을 정하는 것이고 xlable, ylable로 x축 y축 레이블 이름을 따로 정할 수 있다.

 

 

히스토그램(histogram) : 데이터 분포를 시각화 하는데 사용되는 그래프이다. histos(같은) + gramma(그림,기록) 이라는 뜻으로 같은 범주를 기록하는 그림이라는 의미이다.

 

iris = sns.load_dataset('iris')
iris

seaborn의 내장 데이터셋 중 교육용으로 많이 사용된다는 iris라는 데이터를 사용하였다.

iris.species.value_counts()

진심 판다스 적응이 잘 안되네...  iris.컬럼명.value_counts()를 하면 종류별로 숫자가 나온다.

#sepal_width의 분포. sepal: 꽃받침.
plt.hist(iris['sepal_width'])
plt.show()

plt.hist이다. 여기서는 또 iris[] 이런 식으로 인덱싱 연산을 한다. 알다가도 모를 일.

sns.histplot(iris['sepal_width'])

이것은 seaborn으로 한 것이다. 값은 파이플롯과 비슷하게 나온다.

 

 

seaborn의 scatterplot을 했다. 

 

pyplot도 색깔을 어떻게든 넣을 수는 있는데 쌩쇼를 해야 한다. seaborn을 쓸 수 없을 일이 있을 때나 이 방법을 쓰도록 하자.

 

regplot은 산점도와 회귀선(regression line)을 함께 그려준다.

 

jointplot. 차트의 중간에 상관관계 그래프를 보여주고 상단과 오른 쪽에 분포를 보여주는 그래프이다.

 

박스플롯은 이해가 안돼서 이 강의를 참고한다.

 

https://www.youtube.com/watch?v=Wuk17zg-jt8 

중앙값을 먼저 한 번 쪼개서 그 뒤 양옆으로 중앙갚을 또 쪼갠다. 그래서 나온 4개의 도막을 1사분위 수(1Q), 2사분위수(2Q or Median), 3사분위수)로 체크하고 3사분위 - 1사분위의 차이를 사분위의 범위라고 한다.

이 사분위의 범위에서 1.5를 곱한 뒤 1사분위와 3사분위에서 각각 더 낮게, 더 높게 계산을 하고 그 계산에 가장 가까운 표본의 값에 선을 긋고 그 선의 바깥에 있는 부분을 이상치라고 한다.

 

이 영상의 예시에서는 같은 제품이 다른 온도에서(x)의 강도(y) 측정을 할 때 사용을 했다.

 

히트맵은 상관관계를 보여준다. 상관관계는 보통 0.5 이상은 강한 상관관계 0.3~0.5이상을 쓸만한 정도로 보는데 해당 기준으로는 0.96이 있으므로 해당하는 데이터들이 제일 상관관계가 높다고 할 수 있겠다. 

728x90