티스토리 뷰

반응형

요즘 핫한 언어? 아닙니다. 사실 파이썬은 개발된지 꽤 오래된 언어지만, AI에 대한 관심이 높아지면서 더 각광받는 언어가 아닌가 싶네요. 파이썬으로 차트그리기도 라이브러리를 활용하면 너무 간단하게 구현할 수 있네요. 차트라는 것은 엑셀을 사용해서 표현하더라도 그리 간단하지 않은데, 실제 사용기는 너무 간단하고 쉽습니다.

사용하는 라이브러리 : matplotlib.pyplot

샘플코드 (W3school.com)에서 자료를 활용해서 설명합니다.

mport matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])

plt.pie(y)
plt.show() 

파이썬으로 실행하면...

참~ 쉽죠잉? 바로 나오네요.

그렇다면, 여기서 궁금해야 할 부분이 있습니다.

어디서 부터 시작이야? 파이차트의 시작점이 어딜까요?

Start지점이 각이 시작되는 지점입니다.

counterclockwise -> 시계반대방향인거죠. 그렇게 돌아가면서 그립니다.

그렇다면 파이차트는 점유율을 표시할때 주로 사용하지요. 계산되는 공식은 이렇습니다.

The value divided by the sum off all values: x/sum(x)

합계를 각 파트로 나누는 것이죠.

이젠, 레이블을 달아봅시다. 각 부위에 대한 타이틀을 달아주는 것이지요.

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]

plt.pie(y, lables = mylabels)
plt.show() 

 

시작각도의 기준은 아래와 같습니다. 당연히 시작각도를 조절할수도 있구요.

각도의 기준을 참고해야할 표입니다. 90도에서 시작되는 파이차트라면 아래와 같이 코딩하면 될 것입니다.

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]

plt.pie(y, lables = mylabels, startangle = 90)
plt.show() 

시작각도를 90으로 주면 위와 같이 나옵니다.

 

여기서 파이차트에서 특정 레이블을 튀어나오게 하려면? 방법이 있을까요?

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]
myexplode = [0.2, 0, 0, 0]

plt.pie(y, lables = mylabels, explode = myexplode)
plt.show() 

myexplode = [0.2, 0, 0, 0]  -> 이부분이 튀어나오게 하는 세팅치입니다. 그러면 아래와 같이 결과가 나옵니다.

특정부위 돌출하기

그림자를 넣을 수도 있습니다.

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]
myexplode = [0.2, 0, 0, 0]

plt.pie(y, lables = mylabels, explode = myexplode, shadow = True)
plt.show() 

추가된 코딩을 확인해 보시면 너무 간단합니다.

그림자가 나타난 파이썬 차트

차트의 색상도 각 항목별로 바꿀수가 있는데요.

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]
mycolors = ["black", "hotpink", "b", "#4CAF50"]

plt.pie(y, labels = mylabels, colors = mycolors)
plt.show() 

각 차트의 요소인 레이블에 설명하는 란을 넣을수도 있지요.import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]

plt.pie(y, labels = mylabels)
plt.legend()
plt.show() 
눈치채셨겠지만, plt.legend() 만 넣어주면 되네요.
파이썬으로 정말 짧은 코딩라인으로 이렇게 간단하게 차트를 표현한다는 것에 놀랐습니다. C언어나 기타 언어들을 사용해서 차트를 만드는 것은 상상만해도 머리가 아파오지요. 이런저런 수학적 지식이 없이도, 간단하게 설치할 수 있는 라이브러리로 차트를 만들 수 있는 파이썬... 매력덩어리네요~

Matplotlib 많이 사랑해 주세요~~

 

반응형
댓글