Chart.js에서 원형 차트 작성
스포츠 대회에서 자주 있는 승패 확률 그래프(최대 100%라는 설정)
데이터베이스
forecasts 테이블
num은 win_school의 승리 확률
win_school은 승리가 예상되는 팀
lose_school은 잃을 것으로 예상되는 팀
id
num
user_id
win_school
lose_school
1
60
1
A학원
B학원
컨트롤러
id가 1의 데이터를 취하여 이것을 설정
def show
@forecast = Forecast.find(params[:id])
end
html 파일
<div class="win"><%= @forecast.win_school %></div><!-- A学園 -->
<div class="lose"><%= @forecast.lose_school %></div><!-- B学園 -->
<div class="win-rate"><%= @forecast.num %></div><!-- 60 -->
<div class="pie"><!-- グラフ描画部分 -->
<div style="width:60%; height:60%";><canvas id="PieChart"></canvas></div>
</div>
<%= javascript_pack_tag 'forecast' %> <!-- js読み込み -->
숨기고 싶다면 hidden을 사용하는 것이 좋습니다.
<div hidden class="win">
js 파일
app > javascript > packs > forecast.js
var ctx = document.getElementById("PieChart");
var win = document.getElementsByClassName("win").textContent //クラス名winから値を取得(A学園)
var lose = document.getElementsByClassName("lose").textContent //クラス名loseから値を取得(B学園)
var winnum = document.getElementsByClassName("win-rate").textContent //クラス名win-rateから値を取得(60)
var PieChart = new Chart(ctx, {
type: 'pie', //グラフのタイプは円グラフです、という意味
data: {
labels: [win,lose], //円グラフのラベル(円グラフのA学園,B学園と表示されている箇所)
datasets: [{
backgroundColor: [ //円グラフの色
"#FF0000", //1つめの色(ラベルwin)は赤
"#33CCFF", //2つめの色(ラベルlose)は水色
],
data: [winnum,100-winnum] //グラフの値 下記参照
}]
},
options: { //オプションでカスタマイズ?
title: {
display: true,
text: '勝利確率'//グラフのタイトル
}
}
});
data:에서 그래프에 값을 삽입하고 있습니다.
변수 winnum에는 60이 들어 있으므로 60,2번째는 100-60으로 40이 들어가기 때문에
A학원의 승률 60%, B학원의 승률 40%라고 합니다
data: [winnum,100-winnum]
이번에는 html 파일에서 값을 검색했습니다.
컨트롤러에서 얻고 싶다면 gon을 사용하면 좋을 것입니다.
Reference
이 문제에 관하여(Chart.js에서 원형 차트 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/katou02/items/ab555669600f64e0f318텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)