본문 바로가기
데이터 분석

[패스트 캠퍼스 수강 후기] 직장인을 위한 파이썬 데이터 분석 올인원 패키지 Online 14일차

by HIMMEL95 2021. 3. 29.
  • 수강한 강의

: Ch01.matplotlib-03.밑 그림 그리기 (단일 그래프, 다중 그래프) / Ch01.matplotlib-04. 다중그래프 - fig, axes, subplots / Ch01.matplotlib-05.기본 그래프 스타일링 / Ch01.matplotlib-06.그래프 이미지를 저장 및 활용하기 / Ch01.matplotlib-07.scatterplot / Ch01.matplotlib-08. barplot, barh

오늘은 matplotlib에서 밑 그림 그리기(단일 그래프, 다중 그래프), 다중그래프중 fig, axes, subplots, 기본 그래프 스타일링, 그래프 이미지를 저장 및 활용, 그래프의 barplot, barh 표현 방법에 관한 내용을 작성해보겠습니다.

  • Ch01.matplotlib-03.밑 그림 그리기 (단일 그래프, 다중 그래프)

  • matplotlib을 활용하여 단일 그래프, 다중 그래프를 작성 해보자.
    우선 matplotlib을 실행하기 전에 그래프를 사용하면서 한글을 사용할 경우 한글 깨짐을 방지하기 위해서 다음 코드를 먼저 실행한다.
    !sudo apt-get install -y fonts-nanum !sudo fc-cache -fv !rm ~/.cache/matplotlib -rf
    다음 코드를 실행하고 난 다음에 상단 메뉴에서 런타임-> 런타임 다시시작을 누르고 그래프 출력에 필요한 코드와 다른 필요한 코드를 실행시켜 준다.
    import matplotlib.pyplot as plt import pandas as pd import numpy as np
    를 실행켜주고 폰트의 종류와 그래프 사이즈 코드를 실행시켜준다.
    plt.rc('font', family='NanumBarunGothic') plt.rcParams["figure.figsize"] = (12, 9)


    위 사진과 같이 data변수에 1~99까지의 숫자를 저장한 배열을 작성한 다음에 다음 변수를 plt.plot()에 넣어서 작성하고 마지막에 plt.show()함수를 작성해서 실행을 하게 되면 위에 보이게 되는 하나의 그래프가 작성되게 된다.

    하나의 그래프 뿐만 아니라 여러개의 그래프를 작성하고 싶다면 원하는 만큼의 데이터 변수를 만든 다음에 plt.plot()함수에 변수들을 대입한 다음에 plt.show()를 실행해주면 된다. 그러면 다음과 같이 여러 그래프가 생성된 것을 확인할 수 있다.


    위 사진의 코드를 확인해보면 중간에 주석처리 되어 있는 부분을 보게되면 figure() 함수가 있는 것을 확인할 수 있다. figure()는 하나의 canvas에서 작성된 여러개의 그래프를 따로 분리하여 표현해주는 함수이다.

    다음 사진을 보면 첫번째 plt.plot(data)다음에 plt.figure()을 작성해 주어 canvas를 따로 나누게 된다.

  • Ch01.matplotlib-04. 다중그래프 - fig, axes, subplots

  • 요번에는 여러개의 plot을 그리는 방법인 fig, axes, subplots을 다루어 보자.
    subplot(row, column, index)
    다음과 같은 속성을 가진 함수를 사용하면 figure() 함수와는 다르게 하나의 canvas의 공간을 나눠서 그래프를 작성을 하게된다.


    위 사진을 보게되면 .subplots(2,1,1)로 작성된 것을 확인할 수 있다. 해당 코드의 의미는 하나의 canvas에서 2개의 행과 1개의 열 그리고 각 인덱스 번호가 작성된 것을 확인할 수 있다. 그래서 위 사진에 index 번호가 순서에 따라 작성된 것을 알 수 있다. 하지만 .subplot(2,1,1)은 다르게 표현을 할 수도 있다. .subplot(211)로 콤마(,)을 제거하고 작성을 해도 결과가 동일한 결과가 나온다는 것을 확인할 수 있다.

    아까는 행 방향으로 canvas가 나눠서 그래프가 작성된 것이고, 지금은 열 방향으로 나눠서 작성된 것이다.


    다음은 하나의 canvas를 여러개로 나누는 것이 아니라 여러개의 canvas를 만들어서 그래프를 작성한 것이다. fig, axes = plt.subplot(2,3)의 의미는 fig, axes를 행과 열로 보면 되고 뒤에 함수에 적힌 숫자들은 행 2개와 열 3개로 나눠서 canvas를 작성하게다고 보면된다. 그리고 아래에 axes[0,0].plot(data)이 부분은 "canvas행렬에서 0행 0열에 해당하는 부분에 data변수의 정보 그래프를 작성하겠다."라는 의미가 된다. 그리고 .tight_layout()는 작성된 모든 그래프를 보기 쉽게 작성하기 위한 함수라고 보면 된다.

  • Ch01.matplotlib-05.기본 그래프 스타일링


  • 다음은 그래프의 속성들을 설명해주는 그림이다. 제일 위에 title은 그래프의 제목, legend는 범례, xlabel은 x축, ylabel은 y축, grid는 영역선을 설명해주고 있다.
    요번 사진은 작성된 그래프에 "이것은 타이틀입니다."라는 타이틀을 붙인 것이다.


    다음 사진을 보게되면 타이틀이 작성된 것을 확인할 수 있다. 하지만 두 그래프에 차이가 있는데 그것은 타이틀에 해당하는 글의 크기차이가 있다는 것이다. 위에는 제목만 적었을 때 작성되는 글씨의 크기인 것이고, 아래의 그래프는 .fontsize=20으로 20의 사이즈로 폰트 사이즈를 적용한 것이다.


    요번에는 타이틀 뿐만 아니라 x축과 y축의 제목을 설정해준 것이다.


    다음은 .xticks(rotation=), .yticks(rotation=)을 활용하여 x축과 y축의 있는 정보를 원하는 각도 만큼 기울인 사진이다. 다음과 같이 rotation을 사용하는 경우에는 각 축에 표현하는 정보들의 내용 길이가 길어서 겹치게 될 경우 rotation 속성을 활용하여 글씨가 겹치는 것을 방지할 수 있다.


    다음은 그래프에 범례를 작성한 사진이다. 범례가 필요한 이유는 여러 개의 그래프가 작성이 되었을 때 각 그래프가 어떤 의미를 나타내는지 설명이 없으면 모르기 때문에 범례를 만들어 작성하게 된다. 코드는 plt.legend(['10 * 2', '10**2', 'log'], fontsize=15) 처럼 각 그래프의 이름을 리스트 형식으로 작성해주고 글씨의 크기는 15로 해서 작성해준 것이다.


    다음은 그래프의 각 축의 범위가 길때 중간에 원하는 값을 전체 그래프에서 찾기 어려울 때가 있다. 그럴때에는 xlim(), ylim()함수를 활용하면 내가 찾고자 하는 범위의 그래프만 표현해 줄 수있게 된다. 위에 xlim(0,5), ylim(0.5, 10)는 x축의 05에 해당하는 범위와 y축 0.5 10에 해당하는 부분에 관해서만 확대하여 출력하게 된다.
    다음은 그래프 스타일의 세부 설정에 관한 내용이다.

    세부 도큐먼트 확인하기

marker의 종류

-   '.' point marker
-   ',' pixel marker
-   'o' circle marker
-   'v' triangle\_down marker
-   '^' triangle\_up marker
-   '<' triangle\_left marker
-   '>' triangle\_right marker
-   '1' tri\_down marker
-   '2' tri\_up marker
-   '3' tri\_left marker
-   '4' tri\_right marker
-   's ' square marker
-   'p' pentagon marker
-   '\*' star marker
-   'h' hexagon1 marker
-   'H' hexagon2 marker
-   '+' plus marker
-   'x' x marker
-   'D' diamond marker
-   'd' thin\_diamond marker
-   '|' vline marker
-   '\_' hline marker

line의 종류

-   '-' solid line style
-   '--' dashed line style
-   '-.' dash-dot line style
-   ':' dotted line style

color의 종류

-   'b' blue
-   'g' green
-   'r' red
-   'c' cyan
-   'm' magenta
-   'y' yellow
-   'k' black
-   'w' whites

다음 사진에 라인 스타일, 컬러, 마크 스타일 종류에 관한 내용이 모두 담겨져 있다. `marker` 속성은 그래프의 점 스타일을 나타내는 것이고, `linestyle`은 그래프 선의 스타일이고, `color`는 그래프와 점의 색을 나타내는 속성이다. 다음 속성들의 자세한 설명은 위에 링크된 "세부 도규먼트 확인하기"를 누르게 되면 속성에 관한 모든 내용이 표기되어 있다.


다음은 그래프의 그리드를 작성하는 방법이다. 해당 코드는 plt.grid() 함수를 작성하게 되면 그래프에 그리드를 작성해서 그래프를 작성할 수 있다.

  • Ch01.matplotlib-06.그래프 이미지를 저장 및 활용하기
  • 다음은 위에서 작성한 그래프를 이미지 형식으로 작성하는 방법이다.


중간에 plt.savefig('my_graph.png', dpi=300)라는 코드가 있다. 이 코드가 그래프를 이미지로 저장하기 위해서 필요한 코드이다. 중간에 내가 저장하고 싶은 이미지명을 작성하고, dpi는 저장하려는 이미지의 해상도값이다.

  • Ch01.matplotlib-07.scatterplot

  • Scatterplot은 그래프에서 산점도 그래프로 그래프에 값들을 점의 형태로 나타낸 그래프이다.


    다음 사진을 보면 x와 y 값에 01 까지 랜덤의 소수점 값을 50개 저장해준다. 그리고 colors 변수에는 049까지의 수를 저장해주고, area 변수에는 x, y 그리고 1000을 곱한 값을 저장해준다. 그러고 난 다음에 plt.scatter(x,y, s=area, c=colors)를 작성해주게 되면 x축은 x, y축은 y값으로 정해지고, s는 그래프의 사이즈에 해당하는 값으로 그래프의 전체적인 크기 값으로 작성하고, c는 각 점의 색을 colors라는 변수로 지정을 해주게 되면 다음과 같은 scatterplot이 작성되게 된다.

    다음은 cmap과 alpha 속성이다.
    cmap은 컬러를 지정하며, 컬러 값을 모두 같데 가져갈 수도 있다.
    alpha는 점의 투명도를 나타내며, 0에 가까울 수록 투명하고, 1에 가까울수록 진하게 표현된다.

    위에 작성한 scatter 속성에 c대신 cmap, alpha를 추가해서 작성하면 된다. 그리고 각 그래프마다 작성된 결과를 보게되면 alpha=0.1에 해당하는 것은 되게 투명하세 작성된 것을 볼 수 있고, alpha=1.0에 해당하는 것은 되게 찐하게 작성된 것을 확인할 수 있다. 그리고 cmap='blue'로 scatter의 색이 blue로 설정된 것을 확인할 수 있다.

  • Ch01.matplotlib-08. barplot, barh

  • bar과 barh는 전에도 내용을 작성했는데, bar 모형의 그래프를 작성한 것이다.


    다음의 그래프 사진이 barplot의 기본 그래프이다. .figure()은 그래프의 전체적인 크기를 나타내는 것이고, .bar() 다음 함수 내의 align은 그래프를 중간에 정렬시키고, 그래프의 투명도는 alpha=0.7로 작성하고, 색상은 color='red'로 작성해주면 된다.

    다음은 barh로 작성한 그래프인데 bar함수와 동일하게 작성이 되는데 다만 다르게 작성되는 부분은 xticks로 작성된 부분은 yticks로 변경해서 작성해주면 된다.
    그리고 batplot로 두 개의 그래프를 비교하여 작성할 수 있다.

    코드를 다음과 같이 작성하면 두 개의 서로 다른 그래프를 비교하여 하나의 그래프로 표현해줄 수 있다.


    다음은 barh를 활용해서 가로로 그래프를 표현한 것이다.

이렇게 matplotlib에서 밑 그림 그리기(단일 그래프, 다중 그래프), 다중그래프중 fig, axes, subplots, 기본 그래프 스타일링, 그래프 이미지를 저장 및 활용, 그래프의 barplot, barh 표현 방법에 관한 내용을 작성해보겠습니다.

  • 데이터 분석
  • 홈페이지에서 강의 찾는 방법

패스트 캠퍼스 -> 온라인 -> 올인원 패키지 -> [데이터 분석 강의 보러 가기] -> 직장인을 위한 파이썬 데이터 분석 올인원 패키지 Online.
패스트 캠퍼스 - [데이터 사이언스] 직장인을 위한 파이썬 데이터 분석

https://bit.ly/2MJqrMs

댓글