파이썬에서 데이타를 차트나 플롯(Plot)으로 그려주는 라이브러리로 가장 많이 사용되는 데이타 시각화(Data Visualization) 패키지. 라인 플롯, 바 차트, 파이차트, 히스토그램, Box Plot, Scatter Plot 등을 비롯하여 다양한 차트와 플롯 스타일을 지원한다.
- 수입
import matplotlib as mpl
import matplotlib.pyplot as plt
#또는
%matplotlib inline
"%matplotlib inline" 를 넣게 되면, Shift + Enter를 치지 않고 Run 버튼을 눌러 실행하여 그래프를 얻을 수 있다. 이러한 % 명령은 Cell Magic 명령어라고 불리우는 것으로 이는 파이썬 코드가 아니라 Jupyter에게 특정 기능을 수행하도록 하는 명령이다. %matplotlib inline 명령은 Jupyter에게 matplotlib 그래프를 출력 영역에 표시할 것을 지시하는 명령이다.(출처)
- 차트 그리기
plt.plot(["Seoul","Paris","Seattle"], [30,25,55]) #차트 내용
plt.show() #차트출력
#또는
데이터이름.plot(kind='bar')
sql 테이블에서 가져온 데이터들(ans, row.sum_num) 을 value값으로 지닌 클래스를 설정해준다.
{% for row, ans in surveyList %}
<tr>
<!--=================================================================================-->
<input type="hidden" class="ans" name="ans" value="{{ans}}">
<input type="hidden" class="sum_num" name="sum_num" value="{{row.sum_num}}">
<!--=================================================================================-->
<td>{{ans}}</td>
<td>{{row.sum_num}}</td>
<!--sql에 있는 테이블 row 가져오기-->
</tr>
{%endfor%}
위치는 ans와 row.sum_num을 surveyList에서 가져온 디장고 탬플릿 태그( {% %} ) 안에 써줘야 한다.
3. 데이터를 받아오기 위해 여러 방법으로 받아온다.
답변이 4개이기 때문에 데이터를 여러가지 방법으로 가져올 수 있다.
1) 반복문 사용
$(function(){
var chartData=[];
for(var i=0;i<$('.ans').length; i++){
chartData.push([$('.ans').eq(i).val(),$('.sum_num').eq(i).val()]);
}
var chart = c3.generate({
bindto:'#chart_donut',
data: {
columns: chartData,
type : 'pie',
}
});
});
- arrayList 생성한다. 이름 : chartData - id 값이 ans인 태그의 길이만큼 반복문 돌린다.(문항수만큼) - chartData변수에 배열 값을 넣는다(push) - push 조건 : id가 ans이거나 sum_num인 태그 중 인덱스번호가 i(=eq)인 경우, 양식(form)의 값을 가져오거나 값을 설정(=val())