[kr-dev] 파이썬으로 차트 그리기 기초 by minari

View this thread on steempeak.com
· @minari · (edited)
$4.49
[kr-dev] 파이썬으로 차트 그리기 기초
지난번에 너무 많은 내용을 하나의 포스팅에 넣었더니 평가가 저조하더군요.
https://steemit.com/kr/@minari/kr-dev-cryptocompare

그래서 이번에는 짧게 기초적인 파이썬 그래픽 라이브러리 사용법에 대한 설명을 드리려고 합니다.

파이썬 언어의 편리함에 힘입어 수많은 고수들이 각종 라이브러리를 파이썬 용으로 만들어 배포하고 있으며, 대부분 공짜로 사용할 수 있습니다.

그 중에서도 데이터 분석에 사용되는 pandas와 더불어 많이 사용되는 라이브러리는 matplotlib입니다. 

결국 뭔가를 분석하고 나면 그 결과를 확인해야 하는데, 수치보다는 그래프가 더 직관적으로 들어오기 때문입니다.

현재 matplotlib에서 제공하고 있는 차트의 종류는 수백가지가 넘으며, 사실상 현실에서 사용하는 모든 종류의 차트가 라이브러리화되어 함수 하나로 호출해서 사용할 수 있습니다. (예, 선차트 plot(), 바차트 bar() ...)

https://matplotlib.org/ 

![](https://steemitimages.com/DQmRMoQzPVRXmSxrx179setFFAJMh4VVPaUZKbvYCEk6cEp/image.png)

회사에서 보고서로 쓰이는 차트들은 대부분 정형화되어 있어서 엑셀의 기능으로도 충분하지만, 정형화되어 있지 않은 데이터 분석의 결과를 확인하기에는 부족한 면이 없지 않습니다.

그래서 파이썬을 통한 데이터 분석에 앞서서 그래픽 라이브러리를 이용하는데 조금 친숙해지시라는 의미로 간단한 예제를 만들었습니다.

두 개의 직선과 곡선을 하나의 차트에 넣고, 제목과 x,y축 및 범례를 표시해 보겠습니다.

프로그램 코드는 다음과 같으며, 파이썬은 코드 영역 구분을 {}블럭 설정 대신 들여쓰기로 하기 때문에 텍스트를 스팀이세 복사해 넣으면 들여쓰기가 없어지지만, 아래 코드는 애초에 들여쓰기가 없어서, 바로 복사해서 실행해 보실수 있습니다.

~~~

import matplotlib.pylab as plt
import numpy as np

# xy평면에 그릴 직선과 곡선에 대한 함수
x = np.arange(0, 12, 0.1)
y = np.sin(x)
y2 = x / 6 - 1

# 곡선과 직선을 matplotlib 라이브러리를 이용해 그림
plt.plot(x, y, 'r--', lw=2, label='sin') # 선 색빨은 빨강, 두께는 2
plt.plot(x, y2, 'b', label='line') # 선 색깔은 파랑

# 차트 꾸미기
plt.xlim(-1, 15) # x축 범위
plt.ylim(-1.1, 1.2) # y축 범위
plt.grid() # 차트에 격자무늬
plt.title("Title") # 차트 제목
plt.xlabel("X axis") # x축 설명
plt.ylabel("Y axis") # y축 설명
plt.legend(loc='best') # 범례 표시 (위치 = 알아서)
plt.show() # 차트 보이기

~~~

위와 같은 프로그램을 파이썬을 지원하는 편집기 (spyder, pycharm, jupyter notebook 등)에 입력하여  실행을 시켜보면, 출력창 또는 팝업창으로 아래와 같은 차트를 보실 수 있습니다.

![](https://steemitimages.com/DQmcwqVVm8C6mBaXMjYjkX3wrsJ4csC1Y7FeW5kyCnFvkYg/image.png)

개발자나 이공계가 아니더라도, 파이썬 정도의 언어를 하나 익혀주신다면 본인의 업무능력이나 취미활동 또는 향후 자녀 교육에도 도움이 도움이 되리라 생각됩니다. ^^

---

※ 파이썬을 이용한 투자 포스팅은 #kr-systemtrading에서 보실 수 있습니다.
👍  , , , , , , , , , , , , , , , , , , , , , , , ,
properties (23)
post_id25,610,539
authorminari
permlink4gl5k7-kr-dev
categorykr
json_metadata"{"app": "steemit/0.1", "format": "markdown", "links": ["https://steemit.com/kr/@minari/kr-dev-cryptocompare", "https://matplotlib.org/"], "image": ["https://steemitimages.com/DQmRMoQzPVRXmSxrx179setFFAJMh4VVPaUZKbvYCEk6cEp/image.png"], "tags": ["kr", "kr-dev", "kr-systemtrading"]}"
created2018-01-14 12:21:54
last_update2018-01-14 12:24:18
depth0
children4
net_rshares493,420,080,258
last_payout2018-01-21 12:21:54
cashout_time1969-12-31 23:59:59
total_payout_value3.960 SBD
curator_payout_value0.530 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length1,827
author_reputation18,243,623,925,784
root_title"[kr-dev] 파이썬으로 차트 그리기 기초"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (25)
@z9inv ·
파이썬 공부하고 있는데~~ 좋은글 감사합니다 ^^*
properties (22)
post_id25,611,163
authorz9inv
permlinkre-minari-4gl5k7-kr-dev-20180114t122555313z
categorykr
json_metadata"{"app": "steemit/0.1", "tags": ["kr"]}"
created2018-01-14 12:25:54
last_update2018-01-14 12:25:54
depth1
children1
net_rshares0
last_payout2018-01-21 12:25:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length28
author_reputation4,986,292,807
root_title"[kr-dev] 파이썬으로 차트 그리기 기초"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@minari ·
파이썬이 언어보다 라이브러리가 더 심오한 것 같습니다. pandas tutorial만 1,000페이지가 넘어가는 정도구요. 제 경우엔 필요한 것부터 하나씩 구현해가다 보면 언젠가 실력이 늘거라고 생각하면서 코딩하고 있습니다. ^^
properties (22)
post_id25,720,540
authorminari
permlinkre-z9inv-re-minari-4gl5k7-kr-dev-20180115t000515563z
categorykr
json_metadata"{"app": "steemit/0.1", "tags": ["kr"]}"
created2018-01-15 00:05:18
last_update2018-01-15 00:05:18
depth2
children0
net_rshares0
last_payout2018-01-22 00:05:18
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length128
author_reputation18,243,623,925,784
root_title"[kr-dev] 파이썬으로 차트 그리기 기초"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@aiyren · (edited)
요즘 안그래도 파이썬 공부중인데 아직 기초 수준이라 ㅎㅎ 차트 기능이 개인적으로 제일 필요한 기능인데 많은 가르침 부탁드립니다 :)
properties (22)
post_id25,611,401
authoraiyren
permlinkre-minari-4gl5k7-kr-dev-20180114t122723727z
categorykr
json_metadata"{"app": "steemit/0.1", "tags": ["kr"]}"
created2018-01-14 12:27:24
last_update2018-01-14 12:27:33
depth1
children1
net_rshares0
last_payout2018-01-21 12:27:24
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length73
author_reputation2,531,240,049,595
root_title"[kr-dev] 파이썬으로 차트 그리기 기초"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@minari ·
윗 분 댓글에도 적었지만, 다 알고 시작하기에는 너무 공부해야 할게 방대한 것 같습니다. 필요한 것 위주로 하나씩 하면 될꺼 같아요. 종종 게시물을 올리면 고수가 더 좋은 방법을 알려줄 때도 있고 그러네요 ^^
properties (22)
post_id25,720,657
authorminari
permlinkre-aiyren-re-minari-4gl5k7-kr-dev-20180115t000603973z
categorykr
json_metadata"{"app": "steemit/0.1", "tags": ["kr"]}"
created2018-01-15 00:06:03
last_update2018-01-15 00:06:03
depth2
children0
net_rshares0
last_payout2018-01-22 00:06:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length117
author_reputation18,243,623,925,784
root_title"[kr-dev] 파이썬으로 차트 그리기 기초"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000