저번 포스팅에 이어서 시각화 했던 코드를 분석해보고
결과물 까지 함께 보겠습니다
먼저 직접 그래프를 그리는 부분입니다
plt는 앞에서 저희가 라이브러리를 불러올때 봤던 matplotlib.pyplot에 약자 입니다
저렇게 불러오지 않으면 matplotlib.pyplot을 매 부분 전부 작성을
해야하기 때문에 번거롭습니다
12열을 보시면 plt.style.use('ggplot)이라고 되어있습니다
이 코드는 그대로 읽으시면 됩니다
그래프를 그릴때 'ggplot'이라는 스타일을 사용하겠다는 말입니다
ggplot은 파이썬보다는 R이라는 프로그래밍 언어에서 더 많이 사용됩니다
Grammer of Graphics plot의 약자로
그래픽 문법으로 plot을 한다는 말인데요
영어에도 문법이 있듯이 그래픽을 그릴때도 문법이 존재합니다
Data: 시각화에 사용될 데이터
Aesthetics: 데이터를 나타내는 시각적인 요소(x축, y축, 사이즈, 색깔, 모양 등)
Geometrics: 데이터를 나타내는 도형
Facets: 하위 집합으로 분할하여 시각화
Statistics: 통계값을 표현
Coordinates: 데이터를 표현 할 이차원 좌표계
Theme: 그래프를 꾸민다
이렇게 7개로 구성됩니다
하지만 matplotlib.pyplot에 plot 툴을 이용해도 되는데
왜 ggplot을 사용하는지 의문이 생기실 수 있습니다
기본적으로 ggplot은 R프로그래밍 언어에서 사용하는 툴이라고 했습니다
R프로그래밍은 빅데이터나 통계자료를 분석하고
시각화 하는데 최적화 되어있고 뛰어난 언어입니다
그래픽 문법이나 더 그리기 쉽거나 이러한 점들을 모두 떠나서
더욱 우리가 시각화 할 데이터를 탐색하고 파악할 수 있다는 점에서
ggplot을 사용한다고 할 수 있습니다
plt.rc는 한글 폰트를 그래프에 적용시키기 위한 것이고
본격적으로 그래프를 그리기 시작하는 부분입니다
이해하기 쉽게 figure는 도화지라고 생각하면 쉽습니다
figure가 도화지면 figsize는 도화지의 크기겠죠?
15, 6은 figure의 크기로 인치로 나타냅니다
코드 언어들을 보면 크게 어렵지 않습니다
대부분 영어 그대로 읽혀집니다
title도 마찬가지로 제목을 의미합니다
뒤에 fontsize처럼 제목 글씨의 크기 또한 설정이 가능합니다
이제 plot함수로 그래프를 그릴때 그래프의 사용될 데이터,
그래프의 유형, 모양, 색깔 등 다양하게 바꾸기가 가능합니다
코딩은 간단하고 짧게 쓰는 것을 좋아하기 때문에
간단하게 앞자만 따서 쓰꺼나 줄입니다
저희가 사용할 데이터는
앞에서 보신 것 처럼 공란으로 비워둔 result 값을 이용합니다
c는 color의 약자로 색깔을 지정합니다
색깔의 이름도 줄여서 사용하는데
줄여서 사용이 가능한 색깔이 몇개 없기 때문에
가능한 색깔의 이름을 풀네임으로 써주시는게 편하십니다
예를 들면 줄여서 쓰는 색깔은
black은 k, red는 r, blue는 b, green은 g 등 이렇게 있고
skyblue, hotpink 이런 색깔들은 줄여서 사용하면 파이썬이
인식하지 못합니다
구글에 css color라고 검색하시면 이렇게 색깔의 이름들이
쭉 나오니까 여기서 찾아서 하시면 됩니다
legend는 좀 생소하실 겁니다
legend는 범례를 생성하는 툴입니다
여기 사진을 보시면 빨간색으로 네모쳐진 부분을 범례라고 합니다
각각의 어떤 자료가 있는지를 보여주는 부분입니다
파이썬도 지원을 하니 마지막에 결과를 보시면 아실겁니다
- 축 설정
tick은 순간이나 점을 의미합니다
사진처럼 노란 점 하나 하나를 틱이라고 합니다
간격이라고 생각하시면 편합니다
x축의 간격을 numpy의 arange 메소드를 이용해서
0부터 101까지 뽑는데 그 간격이 20이라는 뜻입니다
arange 메소드는 정리하고 배열하는 툴입니다
(start, stop, step)의 구성으로 시작, 끝, 간격의
인자들이 구성되어야 합니다
간격은 따로 설정하지 않으면 default 값인 1로 실행됩니다
하지만 여기서 중요한 점은 stop값은 포함되지 않습니다
np.arange(0, 10)이라고 하면
step은 default로 1로 실행이 되고
0부터 9까지 출력된 것을 보실 수 있습니다
수학적으로는 [0, 10)으로 표현할 수 있겠네요
사람의 나이는 보통 100세 까지 표현을 하니
(0, 101, 20)으로 실행을 해서
이렇게 뽑아주고 각 틱마다 라벨 또한 설정이 가능합니다
xlabel과 ylabel은 x축과 y축의 이름을 말합니다
colab에서는 plt.show()를 하지 않아도 실행이 됩니다만
colab이 아닌 다른 환경에서는 입력해주어야 합니다
방금 위에서는 csv를 직접 읽어와서 그래프를 작성 했다면
위 사진의 코드는 조금 다릅니다
pandas라는 라이브러리에서 read_csv 메소드를 이용해서
csv파일을 읽은 후 데이터프레임 형태로 그래프를 작성한 코드입니다
차이가 있다면 csv는 오로지 csv파일만 읽을 줄 압니다
하지만 pandas는 csv는 물론 xlsx 즉, 엑셀 파일 또한
데이터프레임 형태로 변환이 가능합니다
pandas에도 plot이라는 메소드가 있어서
pandas만으로도 그래프 그리가가 가능하지만 굉장히 복잡합니다
우리는 초보자의 눈으로 보고 그리니까 더 쉽고 직관적인
matplotlib.pyplot으로 하자구요
데이터프레임 형태로 읽어와도 csv파일에 있는 row와 column은 존재합니다
하지만 plt와는 연결이 되지 않습니다
그렇기 때문의 원하는 값을 x와 y 변수에 할당시키면서
리스트 형태로 변환을 시킵니다
이렇게 하면 plt를 사용해서 그려봅시다
위에서 한 것처럼 x축과 y축의 이름을 설정해주시고
plt.bar를 이용해서 막대그래프를 그릴겁니다
두번째 그래프에 사용하는 자료는 서울시 노령인구 분포인데
제가 보여주고 싶은 것은 어느 구에 노령인구가 가장 많은가 이기 때문에
막대그래프가 제일 적합하다고 생각했습니다
width는 막대그래프의 폭을 설정해주는 겁니다
여러분들이 여러번 실행해보시고 가장 보기 좋다 하시는
폭으로 설정해주시면 됩니다
color도 아까 위에서 처럼 색깔을 찾아서 skyblue로 해주시면
이렇게 멋진 그래프 2개가 그려지게 됩니다
처음에는 물론 이 코드들이 어려울겁니다
혼자 구상하기도 힘드실 겁니다
일단은 제가 올린 코드를 복사하시거나
손에 익히실 분들은 직접 작성을 하셔서
제가 올려드린 코드에서 여러분의 자료를 넣어보거나
코드를 바꿔보면서 이해하시는 걸 추천드립니다
저도 파이썬초보이지만
같은 초보자가 보기에도 이해하기 쉽고
고급자 분들이 봤을때 이상하지 않은
포스팅을 하겠습니다
긴글 읽어주셔서 감사합니다