코드를 작성하면서 때때로 우리는 데이터를 시각화하는 작업이 필요할 때가 있다.
평균, 분산, 표준편차, 공분산 . . . 등등 우리가 중등교육을 거치며 배운 내용들로도 변수 사이의 관계를 나타낼 수 있다.
수치 자체가 의미를 갖는 값이지만 실제로 우리는 수치 자체를 접근하기 보다는 막대 그래프, 히스토그램과 같이 시각화가 한 번 이루어진 자료들을 접하는 경우가 더 많다.
그렇다면 우리는 어떻게 데이터를 시각화 할 수 있을까?
데이터 시각화에는 여러 가지 방법이 있지만 그 중에서 오늘은 방법 중 하나인 Python의 matplotlib에 대하여 알아볼 것이다.
Matplolib?
- Python에서 제공하는 plotting 패키지
- 데이터의 통계를 분석하고 시각화(가시화)할 때 사용
plot은 그래픽과 관련된 용어로, 둘 이상의 변수 간의 관계를 보여주는 그래프를 의미한다.
즉, 우리는 matplotlib를 이용하게 된다면 두 개 이상의 데이터 사이 관계를 시각화 할 수 있다.
https://towardsdatascience.com/visualizations-with-matplotlib-part-1-c9651008b6b8
오늘은 matplotlib를 이용한 선 그래프(Line chart), 막대 그래프(Bar chart), 히스토그램(Histogram) 구현 방법을 알아볼 것이다.
1. 선 그래프 (Line chart)
# from matplotlib import pyplot as plt
import matplotlib.pyplot as plt
years = [1950, 1960, 1970, 1980, 1990, 2000, 2010]
gdp = [300.2, 543.3, 1075.9, 2862.5, 5979.6, 10289.7, 14958.3]
plt.figure(dpi=100) # 해상도를 변경할 경우
plt.plot(years, gdp, marker='^', linestyle=":")
# marker 종류 | 'o' -> 원 | '^' -> 삼각형 | 'x' -> 가위
# linestyle 종류 | dashed(--) | dotted(:) | solid(-)
# custom line | (0, (2,2)) <- 시작할 위치, (선 긋기, 선 안긋기)
# color는 색상의 이름을 명명하는 것이 아닌 rgb 값을 사용하는 것도 가능
# rgb 값은 (r, g, b)와 #rrggbb 모두 가능
plt.title("Normal GDP")
plt.ylabel("Billions of $")
plt.xlabel("Years")
plt.show()
선 그래프는 matplotlib의 pyplot을 통해 사용할 수 있다.
사용을 위해서는 pyplot을 import 해주어야 하는데 크게 두 가지 방법으로 import 할 수 있다.
- from matplotlib import pyplot
- import matplotlib.pyplot
나는 수업시간 교수님께서 후자의 방법을 더 애용하신 말씀에 영향을 받아서인지 주로 두 번째 방법을 이용한다.
plot() 함수를 이용하여 선 그래프를 만들 수 있다.
매개변수로는 차례대로 'x축에 넣을 데이터' / 'y축에 넣을 데이터' / '나머지 옵션들' 이다.
marker와 linestyle, customline 등 plot() 함수의 옵션으로 줄 수 있는 값들은 아래 링크를 참고하면 좋을 거 같다.
marker style에 대한 내용(공식): https://matplotlib.org/stable/api/markers_api.html
2. 막대 그래프 (Bar chart)
import matplotlib.pyplot as plt
movies = ["Annie Hall", "Ben-Hur", "Casablanca", "Gandhi", "West Side Story"]
num_oscars = [5, 11, 3, 8, 10]
plt.bar(movies, num_oscars, width = 0.2, edgecolor="black")
# width 속성은 막대의 두께를 설정
# edgecolor 속성은 막대의 테두리 색상을 설정
plt.title("My Favorite Movies")
plt.ylabel("# of Academy Awards")
plt.show()
Bar chart를 생성하는 법은 Line chart와 크게 다르지 않다.
plot() 대신 bar()를 사용하는 것 이외에는 생성 방법은 동일하다고 봐도 좋다.
주로 사용하는 옵션은 width와 edgecolor가 있다.
width 속성은 막대 그래프 막대의 두께를 의미하며 edgecolor 속성은 막대 그래프의 막대의 테두리 색상을 의미한다.
3. 히스토그램 (Histogram)
import matplotlib.pyplot as plt
grades = [83, 95, 91, 87, 70, 0, 85, 82, 100, 67, 73, 77, 0]
xs = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
xs = [i + 5 for i in xs]
count = [2, 0, 0, 0, 0, 0, 1, 3, 4, 3]
plt.bar(xs, count, width = 10, edgecolor="black")
plt.xticks([0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100])
plt.show()
Histogram의 경우 bar()를 이용하여 만들 수 있다.
이곳에서는 막대 그래프와 히스토그램의 차이를 보완하기 위하여 width와 xs를 조정하였다.
이 부분은 이 게시물을 보고 실습을 따라하는 경우 스스로 값을 조정해가면 쉽게 알 수 있을 것이다.
'모각코' 카테고리의 다른 글
[모각코 1114] 여러분들의 deprecated된 아이들, 제가 찾아드리겟읍니다. (0) | 2022.11.15 |
---|---|
[모각코 1107] 나같은 실수하지 말것-Python (0) | 2022.11.08 |
[모각코 1031] 안드로이드 프로젝트 README.md 작성하기 (0) | 2022.10.31 |
[모각코 1012] 안드로이드 기초는 못참지 (1) - 프로젝트의 구성 (1) | 2022.10.12 |
[모각코 0926] 코드 중복은 못참지 - style편 (2) | 2022.09.27 |