프로젝트명 : studying_pandas
차트 그리는 py : pandas_excel.py

  • pandas의 df(DataFrame)으로 차트를 그리려면, matplotlib이라는 모듈이 필요하다. 이전과 같은 방법으로 설치하자.
    image_thumb1

  • 설치가 되었으면,
    • import matplotlib을 통해서 모듈을 가져온다. -> 사실상 지금은 필요없다...
    • import matplotlib.pyplot as plt 를 통해 내부 파이플롯이라는 클래스를 plt로 가져온다.
      -> df의특정열.plot()을 통해 차트를 그린다.  ->  plt.show 로 화면에 띄운다.
  • 특정열(만두생산)을 .plot()을 통해 kind는 bar 차트로 그리고
    plt.show() 로 화면에 띄워보우는데, block을 띄울껀지인자를 True로 주자..
    -df['만두생산'].plot(kind='bar')
    - plt.show(block=True)
    *우측에 있떤 SciView를 설정 > FloatingMode를 통해 창으로 확인할 수 있다.
    image_thumb6
    image_thumb8
    - 여기서 x축이 이름이 아니라, index로 뜬다.

  • plot()을 차트로 그리기전에, 항상 띄울 DataFrame을 미리 print로 찍어보자.
    - x축으로 나올 index가 숫자로 찍혀있다.
    image_thumb1[1]

  • index를 0,1,2,3,4가 아니라, '이름'열로 하고 싶다.
    df.set_index('칼럼명')으로 특정칼럼을 -> index로 옮겨보자( df자체를 먼저 바꾸는 작업이다)
    image_thumb3


  • 다시 .plot()으로 출력시켜보자.
    이제 문제는 index여서 x축으로 출력되는 한글이 깨지는 문제

    1. 인코딩 문제
    2. 폰트가 영어만 써지는 폰트
    image

  • matplotlib에서 제공하는 font_manager를 통해 폰트를 설정해보자.
    1. 컴퓨터에 설치된 폰트의 이름을 가져오게 한다. -> 2. matplotlib함수에 적용한다.
    from matplotlib import font_manger를 통해 font_manager를 사용할 수 있게 한다.
    폰트매니져의, 폰트프로퍼티스의 인자로 폰트네임fname=실제 한글 폰트의 경로를 지정해주고 .get_name()을 붙혀 해당 폰트의 name을 가져와 font_name이라는 변수로 받는다.
    그리고 나서 matplotlib.rc('font', family= font_name)함수를 이용해서(드디어 쓰이네..) 차트의 폰트를 지정해준다.
    image

  • #matplotlib의 폰트를 지정해주는 방법
    font_name = font_manager.FontProperties(fname='C:/Windows/Fonts/malgun.ttf').get_name()
    matplotlib.rc('font', family=font_name)
    • 윈도우 환경에서는 c:/windows/fonts/ 폴더가 폰트가 있는 경로이다.
      모든 윈도우에 기본적으로 다 있는 malgun.ttf 를 사용할 것이다.
      image

  • 다른 칼럼을 그리고 싶다면, 최종df에서 df['만두생산'] -> df[' 다른칼럼명'] 으로 바꿔주면 될 것이다.
    차트를 저장하는 함수도 존재한다. plt.savefig('파일명*.png')을 통해 png파일로 저장해보자.
    반드시 plt.show(block=True)로 화면에 띄우기전에 저장해야한다. 순서가 바뀌면(show->savefig) 빈파일이 저장된다.
    image
    image
    image

+ Recent posts