[인공지능 데브코스] 3주차 day3 - matplotlib, seaborn

1 minute read

12월 16일 수

오늘은 파이썬의 데이터 시각화 라이브러리인 matplotlib와 seaborn에 대해서 공부했다. matplotlib의 다양한 기능들에 대해서 사용해 봤고 matplotlib기반의 라이브러리인 seaborn도 사용해 봤다. 아직까지는 이게 어떻게 유용한지에 대한 감은 오지 않는다. 함수들을 필요할 때 내가 골라서 사용해 봐야 감이오고 좀 외워질 것 같다는 느낌이 들었다.

matplotlib

파이썬의 데이터 시각화 라이브러리
다양한 데이터들을 데이터에 적합한 방법으로 파악하기 쉽게 만들어 주는 기능을 가지고 있다.

Case Study with Arguments

1차함수 그래프

plt.plot([1,2,3,4,5]) : 꺾은선 그래프를 그리는 함수
list에 해당하는 값이 y로 그려지고 x는 입력하지 않았으므로 인덱스로 자동설정됨
=> y = x+1이 그려짐

plt.show() : plt를 확인하는 명령
plt.figure(figsize = (6,6)): plotting을 할 도면을 선언
figure->plot->show 순서대로 작성

2차함수 그래프

x = np.arrange(-10, 10, 0.1)
plt.xlabel(“x value”) : label을 달아줌
plt.ylabel(“f(x) value”)

plt.axis([x_min, x_max, y_min, y_max])
그래프의 보고싶은 범위를 설정

plt.xticks([i for i in range(-5, 6, 1)])
plt.yticks([i for i in range(0, 27, 3)]
원하는 간격으로 눈금을 새겨줌

plt.title(”title name”)

plt.plot(x, x**2, label = “label name”)

plt.legend() : 범주생성, label을 설정하고 plot뒤에 나와야 함

plt.show()

Matplotlib Case Study

x = np.arange(20)
y = np.random.randint(0,20,20)

산점도 (Scatter Plot)
plt.scatter(x,y) : 점으로 나타내줌
plt.show()

 

박스그림 (box plot)
수치형 데이터에 대한 정보 (Q1, Q2, Q3, min, max)
plt.boxplot(y)
plt.show()

 

막대 그래프(bar plot)
범주형 데이터의 값과 그 값의 크기를 직사각형으로 나타낸 그림
plt.bar(x, y)
plt.bar(x = X, height = Y)
plt.show()

 

히스토그램
연속적인 막대그래프
plt.hist(y, bins = np.arange(0,20,2))

 

원형 그래프 (pie chart)
데이터에서 전체에 대한 부분의 비율을 부채꼴로 나타낸 그래프
다른 그래프에 비해서 비율 확인에 용이
plt.pie([1,2,3,4], labels = [‘a’,’b’,’c’,’d’])
plt.show()

 

Seaborn

Matplotlib를 기반으로 더 다양한 시각화 방법을 제공하는 라이브러리

  • 커널밀도그림
  • 카운트그림
  • 캣그림
  • 스트립그림
  • 히트맵

 

커널밀도그림 (Kernel Density Plot)
히스토그램과 같은 연속적인 분포를 곡선화해서 그린 그림
x = np.arange(0,22,2)
y = np.random.randint(0,20,20)

sns.kdeplot(y, shade = True)
plt.show()
y 축은 density

 

카운트그림 (Count Plot)
범주형 column의 빈도수를 시각화 -> Groupby 후의 도수를 하는 것과 동일한 효과
vote_df = pd.DataFrame(dic)
sns.countplot(x = vote_df[‘group’])

 

캣 그림 (cat plot)
숫자형 변수와 하나 이상의 범주형 변수의 관계를 보여주는 함수

s = sns.catplot(x = ’WHO Region’, y = ‘Confirmed’, data = covid, kind = ‘strip’)
s.fig.set_size_inches(10, 6)

 

스트립그림 (strip plot)
scatter plot과 유사하게 데이터의 수치를 표현하는 그래프
범주별로 표현이 가능하다
sns.stripplot(x = ‘WHO Region’, y = ‘Recovered’ , data = covid)

sns.swarmplot(x = ‘WHO Region’, y = ‘Recovered’ , data = covid)
=> 똑같은데 중복값을 더 잘보여줌

 

히트맵 (Heatmap)
데이터의 행렬을 색상으로 표현해주는 그래프

covid.corr() : 데이터의 상관계수를 행렬로 표현
sns.heatmap(covid.corr())

 

Categories:

Updated: