728x90
300x250

[Python(3.7)] pyplot, pandas를 활용한 그래프 출력하기(CSV 파일 읽어오기)

 

파이썬 3.7에서 pyplot, pandas 라이브러리로 그래프 출력을 하는 방법을 소개하고자 한다.

 

파이썬은 진짜 어려운 프로그래밍 언어는 아니다.

쉽게 사용하려면 쉽게 사용할 수가 있다.

 

몇 가지 라이브러리만 잘 활용하면 비주얼베이직보다도 쉬울 수가 있다.

 

이 글을 참고하는 데 가장 도움이 될만한 글을 선정한다면, 스프레드시트 관련 글이 있다.

 

1. [문서(스프레드시트), (메모장)] CSV 파일 - 수정 작업하기, http://yyman.tistory.com/1094, 2018-07-31
2. [문서(스프레드시트)] Transpose로 행과 열을 바꾸기 (절대함수 사용), http://yyman.tistory.com/1095, 2018-07-31


 

사용 프로그램 

파이썬 3.7 

소프트웨어 구분

오픈소스, (Python Foundation License) 파이썬 재단 라이센스

 

* 대량 데이터를 뽑아내기 위해서 통계청의 "산업 근로형태별 취업자 10차" 데이터를 사용하였음.
* 통계청에서 기부/후원을 받은 바 없음.
-> 좋은 데이터가 있다면 찾아보는 것도 추천함.

* 데이터 해석은 큰 의미를 가지고 해석하지 않았음.

 


1. 단일출력 - 그래프

 

이번에 소개할 것은 단일 형태의 그래프를 출력하는 방법에 대해서 소개한다.

 

 

 

 그림 1-1. Python으로 도출한 그래프, 도도(Dodo)

 

#
# Plot Project
# Author: Dodo (http://yyman.tistory.com)
# 2018-08-01
# Description:
#
#

 

import matplotlib.pyplot as plt
import matplotlib as mpl
import pandas as pd
from matplotlib import font_manager, rc
from pandas import DataFrame

 

font_name = font_manager.FontProperties(fname="c:/Windows/Fonts/NanumGothic.ttf").get_name()
rc('font', family=font_name)

df = DataFrame.from_csv('job_raw/job_pay.csv', encoding='euc-kr')


plot = df.plot()

 

plot.set_xlabel("년도")
plot.set_ylabel("근로자")

 

plt.title("차트")
plt.show()



소스코드: plotDrawing.py

 

[첨부(Attachment)]

plotDrawing.7z

 

 

 


2. 다수출력 - 그래프

 

이번에 출력할 그래프는 다수출력할 수 있는 그래프이다.

 

[소스코드(Source Code)]

#
# Plot Project
# Author: Dodo
# 2018-08-01
# Description:
#
#

 

import matplotlib.pyplot as plt
import matplotlib as mpl
import pandas as pd
from matplotlib import font_manager, rc
from pandas import DataFrame

 

# 디렉토리, 확장자에 대한 정의
rootDir = 'raw'
rootExt = 'csv'
saveDir = 'picture'
saveExt = 'png'

 

#원시 파일명
rawFileName = ['job_pay', 'job_jungujik',
               'job_bijungujik', 'job_shorttemp',
               'job_parttimer', 'job_bijunhyung',
               'job_total']

 

#원시 차트명
rawTitleName = ['임금근로자', '정규직', '비정규직',
                '한시적', '시간제', '비전형', '총계']

 

#반복문
index = 0

 

for x in rawFileName:
   
    font_name = font_manager.FontProperties(fname="c:/Windows/Fonts/NanumGothic.ttf").get_name()
    rc('font', family=font_name)

 

    strFileName = rootDir + "/" + rawFileName[index] + "." + rootExt

 

    df = DataFrame.from_csv(strFileName, encoding='euc-kr')
    plot = df.plot()

 

    plot.set_xlabel("년도")
    plot.set_ylabel("근로자")

 

    strTitle = "2016-3월, 2017-07월"
    strTitle += " "
    strTitle += rawTitleName[index]

 

    plt.title(strTitle)
    #plt.show()
#   plt.show() 출력
#   plt.savefig() 저장

 

    strSaveFile = saveDir + "/" + rawFileName[index] + "-" + str(index) + "." + saveExt

 

    plt.savefig(strSaveFile)
    index = index + 1
   
    #print('%s %s' % (x, rawFileName[1]))
 

 

[첨부(Attachment)]

plotDrawing2.7z

 

 


(출력 결과)

 

표 2-1. 산업 근로 형태별 취업자

                     (단위: 1,000명)

 

 

그림 2-1. 임금근로자(2016년 3월, 2017년 7월)

 

그림 2-2. 정규직(2016년 3월, 2017년 7월)

 

그림 2-3. 비정규직(2016년 3월, 2017년 7월)
 

 

그림 2-4. 한시적 종사자(2016년 3월, 2017년 7월)

 

 

그림 2-5. 시간제(2016년 3월, 2017년 7월)

 

 

그림 2-6. 한시적 종사자(2016년 3월, 2017년 7월)

 

 

그림 2-7. 총계(2016년 3월, 2017년 7월)

 

 

* 원시데이터[첨부(Attachment)]

example2.7z

 

 

그림 2-8. 실습에 사용한 데이터

 

 


3. 맺음글

 

파이썬을 통해서 다양한 차트를 뽑아낼 수 있었다.

단일 처리와 반복 처리를 통해 데이터를 뽑아내는 반복된 작업을 현저한 속도로 줄일 수 있어서 좋았다.

그림 2-1을 해석하면, 임금근로자 종사자가 가장 많은 업종은 사회간접자본 및 기타 서비스업에 종사하는 사람들이 가장 많았다.

인원은 대략적으로 그림으로만 보면 2017년 7월 기준으로 약 15,000,000명 정도 종사하는 것으로 보인다. 700,000명 정도가 증가하였다.

 

두 번째로 많이 종사하는 업종은 "사업, 개인, 공공서비스 및 기타" 업종의 종사가 약 8,000,000명 정도 되었다.

세 번째로 많이 종사하는 업종은 "제조업"으로 약 3,800,000명 정도이다.

제조업의 종사자는 줄어드는 것으로 보인다.

2016년 3월에는 약 4,100,000명 정도였다면 2017년 7월 기준으로는 약 3,800,000명 정도로 3,000,000명 정도가 감소했다.

제조업 직업의 감소인원 = 4,100,000 - 3,800,000 = 3,000,000명

그래프를 자세히 보지 않은 이상은 감소 추이를 살펴보기가 힘들다.

 


4. 참고자료(Reference)

 

1. 산업/근로형태별 취업자(10차), Last Modified 2018-07-31, Accessed by 2018-07-31, http://kosis.kr/statHtml/statHtml.do?orgId=101&tblId=DT_1DE7112&conn_path=I3, 통계청, 경제활동인구조사

2. How to Save a Plot to a File Using Matplotlib, Last Modified , Accessed by 2018-07-31, https://chartio.com/resources/tutorials/how-to-save-a-plot-to-a-file-using-matplotlib/, Chartio

3. Python License, Last Modified , Accessed by 2018-07-31, https://en.wikipedia.org/wiki/Python_License, Wikipedia

4. Various Licenses and Comments about Them, Last Modified , Accessed by 2018-07-31, https://www.gnu.org/licenses/license-list.html#Python, GNU

5. History and License, Last Modified , Accessed by 2018-07-31, https://docs.python.org/3/license.html, Python Software Foundation.

반응형
728x90
300x250
[Python] Python - Heart 그리기

 

Python 3.7로 Heart를 그려보도록 하겠습니다.

간단합니다.

 

식:

f = lambda x: np.sqrt(cos(x)) * cos(80 * x) + 0.5 * np.sqrt(abs(x))

 

 

위에 있는 람다(Lambda) 식에 대한 입력 값입니다.

 

식:
x = np.linspace(-2, 2, 10000)

 

실제 사람이 이해할 수 있는 범위의 수치값: -2, -1.9999,  -1.3, -1, ....., 2

 

= linspace(X1, X2, n)

   X1,와 X2 사이에 n개의 점을 생성하기 위한 명령어

 


1. Python 실행하기

 

 

그림 1-1) Python 3.7 실행하기

 

Python 3.7-> IDLE (Python 3.7 64-bit)를 클릭합니다.

 


2. 하트(Heart) 코드 작성하기

 

File -> New File (Ctrl + N)을 클릭합니다.

 

 

그림 2-1) Python Script 새로 작성하기

 

빈 창에 코드를 입력합니다.

 


import matplotlib.pyplot as plt
from numpy import sin
from numpy import cos
 

x = np.linspace(-2, 2, 10000)
f = lambda x: np.sqrt(cos(x)) * cos(80 * x) + 0.5 * np.sqrt(abs(x))

plt.plot(x, f(x))
plt.show()

 

heart.7z

 

작성된 코드를 실행하기 위해서는 "Run 메뉴" -> "Run Module  F5"를 클릭합니다.

 

 

그림 2-2) Python으로 작성한 수식을 그래프로 출력하기

 

 

아래의 그림처럼 하트가 출력됩니다.

 

 

그림 2-3) 파이썬 - 출력된 그래프

 

파이썬으로 간단한 하트를 출력했습니다.

 


3. 참고 자료(Reference)

 

1. 선형 간격의 벡터 생성, Mathworks, https://kr.mathworks.com/help/matlab/ref/linspace.html, Accessed by 2018-07-16

- Python과 함수가 흡사하고 호환될 것으로 보여서 작성하였음.

 

2. 5.4. matplotlib으로 하트 그리기, WikiDocs.net, https://wikidocs.net/65, Accessed by 2018-07-16

- 단, 여기에 있는 코드로 실행할 경우 Python 3.7에서는 오류가 발생함.

- 오류라는 것은 import와 cos, sqrt에 대한 명시에 관한 문제임.

   명시만 해주면 큰 문제가 없이 동작함.

반응형
728x90
300x250

[Python] Python 3.7 설치

 

Python 3.7 설치를 소개합니다.

귀도 반로섬이 시작한 작은 프로젝트가 엄청나게 커졌습니다.

 

설치 방법은 아주 어렵지 않습니다.

 

사용법도 쉽습니다. 전문적인 프로그래밍을 파이썬으로 작성하지 않은 사람도 사용해도 무방합니다.

 

간단하게 그래프 작성, 수치실험, 수학 공부 등을 해도 좋다고 봅니다.

 

Matlab도 좋긴 하나 학생에 한해서는 Student 버전을 배포하고 있지만, 그것보다도 설치하는데 훨씬 가볍고 빠릅니다.

사용법도 간단합니다.

 


1. Python 설치하기

 

자세한 설명은 생략하고, 색연필로 표기한 것만 잘 따라가시면 설치하는 데 큰 무리가 없습니다.

 

 

그림 1-1) Python - Download 클릭

 

 

그림 1-2) Python의 Windows x86-64 executable installer 선택하기


그림 1-3) Python 다운로드 상태

 

그림 1-4) Python Installer - Add Python 3.7 to PATH 체크하기

 

 

그림 1-5) Python 설치 진행과정

 

 

그림 1-6) Python 설치 완료

 

간단하게 Python 설치가 완료되었습니다.


2. 참고 자료(Reference)

 

1. Python 공식홈페이지, Python Foundation, http://www.python.org, Accessed by 2018-07-16

반응형

+ Recent posts