본문 바로가기
데이터 분석

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

by HIMMEL95 2021. 3. 30.

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

  • 수강한 강의

: Ch01.matplotlib-09.lineplot / Ch01.matplotlib-10.areaplot / Ch01.matplotlib-11.histogram / Ch01.matplotlib-12.piechart / Ch01.matplotlib-13.boxplot / Ch01.matplotlib-14.3D 시각화 / Ch01.matplotlib-15.imshow

오늘은 matplotlib의 그래프 종류 중 lineplot, areaplot, histogram, piechart, boxplot, 3D 시각화, imshow에 관해서 작성을 해보겠습니다.

matplotlib에 관한 설명 페이지

  • Ch01.matplotlib-09.lineplot

  • matplotlib에서 lineplot에 관하여 다루어 보겠습니다.


    다음 사진은 기본 lineplot의 예시 사진이다. 사진의 코드를 확인하게 되면 x변수에는 배열 형식의 0~9까지 0.1씩 늘어나는 범위를 저장하고, y변수에는 numpy 라이브러리에서 삼각함수에서 sin()함수를 나타내는 sin()함수를 사용하고 1을 더한 값으로 저장한다. 그리고 plt.plot(x,y)를 사용하여 그래프 형태를 잡아주고 x축 라벨과 y축 라벨, 타이틀, grid를 설정하고 난 다음에 plt.show()로 위에 작성한 그래프를 최종적으로 출력해준다.


    요번 사진은 라인 타입의 그래프가 두개 작성된 예시 사진이다. 코드는 위에 한 가지 그래프와 거의 비슷하다. 위에 코드와 다른 부분에 관해서만 설명을 하게 된다면, 첫 번째 plt.plot(x, y_1, label='1+sin', color='blue', alpha=0.3) 이 부분을 보게되면 기존과 같지만 중간에 label, color, alpha가 추가되어 작성된 것을 확인할 수 있다. label은 해당하는 그래프의 이름을 정해주기 위해서 작성한 것이고, color는 그래프의 색을 설정하기 위해서 작성한 것이고, alpha는 그래프의 투명도를 설정하기 위해서 작성한 내용이다. 투명도에 경우에는 0에 가까울수록 투명하고, 1에 가까울수록 찐하게 표현된다.


    요번 사진은 위에 작성된 두 개의 그래프에서 x축에 해당하는 y값을 나타내주는 점의 모양을 변경해주는 방법이다. 점의 모양은 marker라는 속성 옵션을 추가해주면 된다. marker 옵션의 종류는 제일 위에 있는 matplotlib에 관한 설명 페이지를 참조하게 되면 더 많은 자세한 내용이 작성되어있다.


    요번 사진은 그래프의 라인 모양의 속성에 관한 사진이다. 사진을 보게되면 그래프의 전체적인 형태는 위 사진과 동일하다 하지만 차이가 있다면 각 그래프 별 표현된 스타일이 다르다. 라인의 스타일을 변경하고 싶으면 .plot()안에 linestyle 속성을 활용하여 그래프의 스타일을 변경할 수 있다. 그래프의 스타일은 위와 마찬가지로 matplotlib에 관한 설명 페이지에 자세히 나와있다.

  • Ch01.matplotlib-10.areaplot

  • 다음은 pandas에서 area를 통해서 그래프를 그린 적이 있는데, 요번에는 pandas가 아니라 matplotlib에서 그래프를 그리는 것을 방법이다.


    다음 사진을 보게되면 y변수에 5 ~ 9사이에 해당하는 값들을 20개 나열한 배열을 저장해준다. 그리고 x변수에는 1~20에 해당하는 벙위를 저장해준다. 그리고 난 다음에 plt.fill_between(x,y, color='green', alpha=0.6)라는 코드를 작성해준 다음에 plt.show()를 작성해서 최종적으로 그래프를 표현해준다. 위에 fill_between함수를 보게 되면 lineplot을 작성하는 방식과 동일한데 .plot() 대신 .fill_between()으로 작성하면 다음과 같은 그래프를 작성해줄 수 있게된다. 다음 그래프에 경우에는 위에 경계선의 구분이 없기 때문에 경계선을 굵게 그리고 밑에 부분은 옅게 그릴 수도 있다.


    다음 그림이 경계선을 굵게 만들고 밑에는 옅게 표현한 것이다. 다음과 같이 하는 방법은 기존 areaplot을 alpha 속성을 사용하여 색을 옅게 만들어주고, lineplot을 따로 alpha 속성을 사용하여 굵게 만들어서 두 개의 그래프를 동시에 그려주면 된다.
    areaplot은 하나의 그래프 만을 사용하는 것보다 여러 개의 그래프를 한 canvas에 그려서 각 그래프의 집중된 밀도가 어느 부분인지 확인하고자 할때 많이 사용한다. 그래서 다음의 사진과 같이 사용할 수 있다.

    !
    다음 사진을 보게되면 areaplot이 3개나 그려진 것을 확인할 수 있다. 그리고 각 그래프들이 겹치는 부분도 확인할 수 있다. 그래서 어느 부분이 집중된 밀도인지도 확인할 수 있게 된다.

  • Ch01.matplotlib-11.histogram

  • 다음은 기본적인 histogram 예시 사진이다.


    다음 사진을 보게되면 x변수에 100000에 해당하는 범위의 수의 랜덤 숫자를 저장하고, bins에 30으로 x축의 구간 범위를 나타내는 값이 된다. 그래서 이 값들을 plt.hist() 다음 코드에 x, 와 x축의 구간 범위인 bins 값을 각각 추가해서 작성을 해주게 되면 다음과 같은 그래프가 작성되게 된다.

    다음 그래프를 하나가 아닌 여러개로 나누어서 표현해줄 수도 있다.


    다음 사진이 여러개 histogram 그래프를 그린 코드이다.
    fig, axs는 전 블로그에서 작성한 내용이기 때문에 넘어가겠습니다. 하지만 그 부분의 내용 중에서 sharey와 tight_layout 부분은 새롭게 추가된 부분이 있다. sharey 부분은 위 사진에 보이는 것처럼 y축이 한 쪽에만 표시된 것을 확인할 수 있다. 이 부분을 위 코드처럼 True가 아닌 False로 표기한 경우에는 각 그래프마다 y축이 다 표시가 되는 사진처럼 True로 표기가 되었기 때문에 맨 처음 그래프에만 y축 값이 표시되고 다른 나머지 그래프에는 표현이 되지 않는 것을 확인할 수 있게 된다. 그리고 tight_layout은 최종적으로 표현되는 그래프의 패딩을 자동으로 조절해주어 fit한 그래프를 생성해주기 위한 것이다.


    다음 사진이 각 그래프마다 y축 값을 표현하는 방법이다. 우선 위에 소개한 사진과 다른 점은 plt.subplots()에 sharey가 없다는 점이고, 밑에 .hist() 함수에 density 속성을 추가하여 y축 값을 각 그래프마다 표현해줄 수 있다. 그리고 첫 코드에 cumulative라는 속성이 있다. cumulative는 누적이라는 뜻으로 해당 그래프는 0~1에 해당하는 값들의 누적 값들을 보여주게 된다.

  • Ch01.matplotlib-12.piechart

  • piechart는 점유율을 표현하기 위해서 사용하는 그래프이다.
    pie chart 옵션- explode: 파이에서 툭 튀어져 나온 비율

  • autopct: 퍼센트 자동으로 표기

  • shadow: 그림자 표시

  • startangle: 파이를 그리기 시작할 각도

  • texts, autotexts 인자를 리턴 받습니다.
    texts는 label에 대한 텍스트 효과를
    autotexts는 파이 위에 그려지는 텍스트 효과를 다룰 때 활용합니다.


    다음 사진이 piechart를 활용하여 그래프를 그린 사진이다.

    다음 사진의 코드는 우선 labels라는 변수에 각 부분의 이름을 명시해주기 위해서 저장한 것이고, sizes는 labels 인덱스에 해당하는 위치의 각 값들을 리스트로 저장을 했다. 다음에 explode라는 변수의 값은 최종적으로 표현된 piechart에서 따로 떨어진 부분이 있는데 그것에 관한 값을 나타내는 값이 된다. .pie()함수안에 내용은 맨처음에는 piechart안에 작성될 값을 명시하고, 앞에서 말한 각 부분별 떨어져 나가는 값을 작성하고, 각 부분을 이름을 labels 옵션에 지정해두고, autopct는 앞선 sizes값을 실수값으로 나타낼 때 나타낼 수 있는 소수점의 범위를 설정하는 것이고, shadow는 piechart 밑에 음영을 넣어주는 것이고, startangle 값은 시작값이 어디서 부터 시작하게 되는지를 설정하는 값이 된다. 그리고 for 반복문은 label에 해당하는 값의 폰트 사이즈와 색을 설정해주는 반복문이고, 그 다음 반복문은 piechart 내부에 명시되는 글씨의 색상과 크기를 설정하게 되는 반복문이 된다.

  • Ch01.matplotlib-13.boxplot

  • boxplot도 pandas에서 사용한것과 거의 비슷하다.


    우선 각 변수에 다음 사진과 같이 값들을 저장한 다음에 data라는 변수에 numpy라이브러리에 있는 함수중 각 데이터를 묶어주는 np.concatenate() 함수에 값들을 저장한 변수를 넣어놓고, plt.boxplot() 함수에 data 변수를 넣고 다음 boxplot을 출력해준다.

    boxplot또한 하나뿐만 아니라 여러 개의 boxplot을 그릴 수 있다.


    다음 사진이 여러 개의 boxplot을 그린 사진이다.

    위 코드를 작성하는 방법은 동일하고 중간에 data = [data, d2, d2[::2,0]이 부분이 있다. 이 부분의 의미는 기본적으로 작성된 data변수와 data 변수와는 다르게 값을 변경한 d2변수와 마지막은 d2변수에서 2행 간격에 해당하는 값과 인덱스 0열에 해당하는 부분의 값들만 저장된 값을 새로운 data 변수에 저장한다. 그리고 plt.boxplot()에 다음 data변수를 넣어서 출력하게 되면 다음과 같이 여러개의 boxplot 그래프를 얻을 수 있다. 중간에 data 내용의 설명이 추가적으로 적혀있기 때문에 참고 하시면 좋을 것 같다.


    boxplot도 barplot과 마찬가지로 축을 변경해서 그래프를 표현할 수도 있다. boxplot()함수 안에 vert=False라는 속성값을 작성하여 추가하게 되면 그래프의 축이 변경되어서 다음과 같은 그래프 사진이 나오게 된다.
    그리고 boxplot도 마커 심볼과 컬러 변경을 할 수 있다.

    다음 사진이 Outlier의 마커 심볼 스타일과 컬러를 변경한 사진이다. 해당 값을 변경하기 위해서는 변경하고 싶은 스타일과, 색상을 먼저 특정 변수에 dict형태로 저장을 하고 다음 변수를 .boxplot의 flierprops라는 속성에 대입하기만 하면 사진과 동일하게 boxplot의 outlier_marker의 스타일과 색상일 변경된 것을 확인할 수 있다.

  • Ch01.matplotlib-14.3D 시각화

  • 다음은 3d로 그래프를 그리는 방법이다. 3d로 그래프를 그리기 위해서는 mplot3d를 추가로 import 해주어야 한다.
    from mpl_toolkits import mplot3d


    다음 사진이 3d로 그래프를 그리기 위한 밑그림 canvas가 된다. 작성을 위해서는 위 사진처럼 코드를 작성해주면 된다.




    다음의 사진과 처럼 line 타입, scatter 타입, contour3D(등고선)에 해당하는 3D 그래프를 작성해서 출력할 수 있게된다. 각 그래프의 자세한 내용은 사진을 보게죄면 정확한 정보를 얻을 수 있게 된다.

  • Ch01.matplotlib-15.imshow

  • imshow는 이미지 데이터와 유사하게 행과 열을 가지 2차원의 데이터를 시각화할 때 사용한다.


    다음 사진이 2차원 배열의 데이터를 이미지 형태로 표현한 사진이다.
    맨 처음 코드를 보게되면 8X8 배열을 X변수에 0~9까지 저장을 한 다음에 X[0]인 첫 번째 배열 값을 출력해 준 값이다.
    그리고 그 다음의 코드는 nrows값은 행의 값이고, ncols는 열의 값이고, sharex와 sharey는 각 그래프에서 x축과 y축의 값을 같이 쓰는 것이고 figsize는 그래프의 전체적인 사이즈를 나타내게 된다.
    그리고 반복문에는 X변수에 있는 각 인덱스 값을 순서대로 각 행렬에 추가하고 색상은 파란색으로 하고 위에 타이틀 사이즈는 20 사이즈로 설정하게 된다. 그러면 다음과 같은 숫자 이미지 그래프가 생성되게 된다.

이렇게 matplotlib의 그래프 종류 중 lineplot, areaplot, histogram, piechart, boxplot, 3D 시각화, imshow에 관해서 작성을 해보았습니다 .

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

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

https://bit.ly/2MJqrMs

댓글