본문 바로가기

코딩/파이썬

파이썬[12] - 그래프 그리기

반응형

안녕하세요.

오늘 비전공자의 코딩 독학 주제는 그래프 그리기 입니다.

 

학교를 다시 다니게 되면서 다양한 과제를 받았는데 그 중 그래프를 그려야만 하는 과제가 있었습니다.

보통 공대생들에게 그래프 그리는 툴이라고 하면 오리진이나 매트랩을 먼저 생각하겠지만, 이런 전문 소프트웨어는 비싸기 때문에 학생 입장에서 구매하기 쉽지 않고, 학교에서 제공해주더라도 개인적인 용도로 사용하기 어렵습니다.

하지만 우리에겐 만능 도구인 파이썬이 있으므로 간단한 코딩을 통해 그래프를 그려보도록 하겠습니다.

 

1. 필요한 라이브러리

(1) numpy 다차원 배열을 대규모로 처리할 수 있게 하는 라이브러리입니다.

데이터 구조와 수치계산에 많이 사용되는 라이브러리입니다.

아래 명령어를 활용해서 설치해주세요.

#pip를 이용한 넘파이 설치
pip install numpy
#아나콘다에 넘파이 설치
conda install numpy

 

(2) matplotlib은 강력한 시각화 기능을 포함한 라이브러리입니다.

간단한 2차원 그래프부터 3차원 그래프는 물론 히스토그램, 원형 그래프까지 그릴 수 있어 다양한 분야에 활용할 수 있습니다.

아래 명령어를 활용해서 설치해주세요.

#pip를 이용한 matplotlib 설치
pip install matplotlib
#아나콘다에 matplotlib 설치
conda install matplotlib

 

2. 사용방법

제가 과제로 제출한 그래프를 예시로 들어서 사용법을 설명드리겠습니다.

import matplotlib.pyplot as plt
import numpy as np

plt.xlabel('b')
plt.ylabel('t1/t2')
plt.title('Graph of approximate solution and precision solution')

b=np.array(range(1000))
y=1+(1/(4*b**2))

plt.plot(b,y)
plt.show()

(1) 우선 matplotlib와 numpy를 import 해줍니다.

여기서 라이브러리명 뒤에 as 를 붙이고 간단한 단축어를 입력해주시면 아래에서 입력할 코드들에 라이브러리의 풀네임을 사용하지 않아도 됩니다.

예를들면 numpy as np라고 입력하시면 아래 코드에서 numpy라이브러리를 사용할때 numpy가 아닌 np로 줄여서 사용하실 수 있습니다.

 

(2) x축과 y축, 그래프명을 입력해줍니다.

예를 들면 plt.xlabel('b')는 x축에 b라는 이름을 붙여주는 코드입니다.

참고로, 한글을 입력하시면아래 사진과 같이 텍스트가 깨져보이니 영어로 입력해주세요.(상단의 속이 빈 사각형 두개)

 

(3) 이제 x와 y를 정의해줍니다.

저같은 경우는 y에 제가 구한 함수를 입력해주었고, x대신 함수에 있는 변수 b를 사용하였습니다.

 

(4) 함수를 입력하실때 덧셈과 곱셈, 나눗셈 등이 섞여있을 경우 괄호를 이용하여 순서를 맞춰주어야 정확한 연산이 가능합니다.

예를들어 제가 구한 함수는아래 사진과 같은데 함수를 1+1/4*b**2라고 입력하면  연산 순서가 바뀌어 정상적인 그래프를 출력하지 못합니다.

그래서 1+(1/(4*b**2))처럼 괄호를 이용해 연산 순서를 지정해주어야 정상적인 그래프를 출력할 수 있었습니다.

아래 사진은 괄호를 이용하여 정상적을 출력한 그래프입니다.

아래 사진은 괄호를 사용하지 않아 원하는 그래프가 출력되지 않은 모습입니다.

 

(5) 이제 plot함수와 show함수를 사용하여 그래프를 출력하겠습니다.

plot함수에는 아까 정의한 x축과 y축을 입력해주면 됩니다.

show함수는 시각화된 그래프를 출력해주는 함수입니다.

 

3. 마치며

이 글이 전문 툴을 구하기 어려우신 학부생분들에게 많은 도움이 되었으면 좋겠습니다.

참고로 R을 이용하셔도 그래프를 그릴 수 있는데 관련 포스팅은 기회가 되면 작성하도록 하겠습니다.

 

반응형